JavaScript|十进制数转二进制

文则
• 阅读 872

题目

来源:“如果”可以“重来” | 百度前端技术学园

验证工具:在线进制转换 | 进制转换器 — 在线工具

Task1

实现当点击转化按钮时,将输入的十进制数字转化为二进制,并显示在 resultp 标签内

Task2

  • 转化显示后的二进制数为 bin-bit 中输入的数字宽度,例如 dec-number 为 5 ,bin-bit 为 5 ,则转化后数字为 00101
  • 如果 bin-bit 小于转化后的二进制本身位数,则使用原本的位数,如 dec-number 为 5 ,bin-bit 为 2 ,依然输出 101 ,但同时在 console 中报个错。

解法

<input id="dec-number" type="number" placeholder="输入一个十进制非负整数" />
<input id="bin-bit" type="number" placeholder="输入转化后二进制数字位数" />
<button id="trans-btn">转化为二进制</button>
<p id="result">运算结果</p>
<script>
  /////// Task 1
  const btn = document.querySelector("#trans-btn");
  const result = document.querySelector("#result");

  function dec2bin() {
    let decNumber = Number(document.querySelector("#dec-number").value);

    // 判断输入必须为一个非负整数
    if (decNumber < 0 || !Number.isInteger(decNumber)) {
      alert("请输入一个非负整数!");
    }

    // 求余
    let bin = [];
    let remainder;
    while (decNumber !== 0) {
      remainder = decNumber % 2;
      decNumber = parseInt(decNumber / 2);
      bin.unshift(remainder);
    }
    let binNumber = bin.join("");

    ////// Task2
    let binBit = Number(document.querySelector("#bin-bit").value);
    if (binNumber.length >= binBit) {
      binNumber = binNumber.slice(0, binBit + 1);
    } else {
      binNumber = binNumber.padStart(binBit,'0')
    }
    result.innerHTML = `运算结果:${binNumber}`;
  }
  btn.addEventListener("click", dec2bin);
</script>

原文:JavaScript|十进制数转二进制

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
JS中二进制与十进制的相互转换
今天在做题目的时候遇到了需要十进制转换为二进制,这个我知道用toString可以,但是二进制转换为十进制我一下子就想不起来,网上搜了下,才知道是parseInt可以实现,特此记录下。十进制转换为二进制:varnum100;console.log(num.toString(2));toString()方法可把一个
Easter79 Easter79
3年前
TypeScript 基本类型(一)
1、boolean布尔值true/falseletisDone:booleanfalse;2、number数字:和JavaScript一样,TypeScript里的所有数字都是浮点数。另外支持二进制,八进制,十进制,十六进制。letdecLiteral:number6;lethex
Stella981 Stella981
3年前
JavaScript的 基本数据类型
第一:Javascript对象是第二:Javascript中第三:Javascript的对象是数据;第四:JavaScript中的对象可以简单理解成"名称:值"对(name:value)。名称(name):"名称"部分是一个JavaScript字符串参考https://www
Stella981 Stella981
3年前
AssemblyScript 入门指南[每日前端夜话0xEB]
每日前端夜话0xEB每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2459 字预计阅读时间:10分钟作者:DannyGuo翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/b880277c594152a503
Wesley13 Wesley13
3年前
JS中有趣的知识
1.分号与换行functionfn1(){return{name:'javascript'};}functionfn2(){return{name:'javascript'
Stella981 Stella981
3年前
Node.js 12中的ES模块[每日前端夜话0x9E]
每日前端夜话0x9E每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2552字预计阅读时间:10 分钟作者:BrianDeSousa翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/2ccaf94cecd3
文则
文则
Lv1
羌笛何须怨杨柳,春风不度玉门关。
文章
1
粉丝
0
获赞
0
热门文章

暂无数据