JS十进制转二进制(控制位数)

主要需求:十进制转二进制,控制指定的位数。

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>IFE ECMAScript</title>
</head>
<body>
<input id="dec-number" type="number" placeholder="输入一个十进制非负整数">
<input id="bin-bit" type="number" placeholder="输入转化后二进制数字位数">
<button id="trans-btn">转化为二进制</button>
<p id="result">运算结果 :</p>
<script>

function dec2bin(decNumber,bit) {
// 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
// 这里是上一个任务的实现
if (decNumber<0) {
alert("请输入一个非负整数")
} else {
var q = binary(decNumber,bit);
document.getElementById("result").innerHTML="运算结果为:"+ q;
}
}
//实现控制位数的二进制转换
function binary (num, Bits) {
var resArry = [];
var xresArry = [];
i=0;
for(;num>0;){
resArry.push(num % 2);
num=parseInt(num/2);
i++;
}
for(j=i-1;j>=0;j--)
xresArry.push(resArry[j]);
if (Bits < xresArry.length) {
console.log("位数小于二进制位数")
}
if (Bits) {
for(var r = xresArry.length; r < Bits; r++) {
xresArry.unshift(0);
}
}
return xresArry.join().replace(/,/g, ‘‘);
}
document.getElementById("trans-btn").onclick=function(){
var d = parseFloat(document.getElementById("dec-number").value);
var b =parseFloat(document.getElementById("bin-bit").value);
dec2bin(d,b);
}
// 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
// 新的需求是,转化显示后的二进制数为bin-bit中输入的数字宽度,例如
// dec-number为5,bin-bit为5,则转化后数字为00101
// 如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错
</script>
</body>
</html>
---------------------
作者:Aimerence
来源:CSDN
原文:https://blog.csdn.net/qq_36301072/article/details/80379122
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/Joe-and-Joan/p/10015567.html

时间: 2024-10-15 18:22:10

JS十进制转二进制(控制位数)的相关文章

Js可定义位数的十进制转二进制

1 // 十进制转二进制 2 function binary (num, Bits) { 3 var d = parseInt(num / 2) 4 var resArry = [num % 2] 5 for(; d != 0; ) { 6 d = parseInt(d / 2) 7 resArry.push(d % 2) 8 } 9 if (Bits) { 10 for(var r = resArry.length; r < Bits; r++) { 11 resArry.unshift(0)

蓝桥杯 算法训练 ALGO-151 6-2递归求二进制表示位数

算法训练 6-2递归求二进制表示位数 时间限制:10.0s   内存限制:256.0MB 问题描述 给定一个十进制整数,返回其对应的二进制数的位数.例如,输入十进制数9,其对应的二进制数是1001,因此位数是4. 样例输入 一个满足题目要求的输入范例.9 样例输出 与上面的样例输入对应的输出. 数据规模和约定 输入数据中每一个数的范围. 例:输入在int表示范围内. 题目解析: 在 Java 的 Integer 类的方法中,有将十进制数转换为二进制.八进制和十六进制的三个方法.若参数为正整数,则

十进制与二进制,八进制,十六进制的转换

(一)数制       计算机采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径,节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.特点: (1)逢n进一,n是每种进位进数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (二)数制转换       不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别一定相等的原则进行

十进制与二进制转换

用C#代码实现二进制与十进制的互相转换 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

将一个十进制转换为二进制,八进制,十六进制

package com.db2; /** * 将一个十进制转换为二进制,八进制,十六进制 * * @author denny * */ public class Demo2 { public static void main(String[] args) { toBin(6); toBin(-6); toOct(60); toOct(-60); toHex(60); toHex(-60); } // 转换2进制 public static void toBin(int num) { toTran

十进制、二进制、八进制、十六进制之间的转换[基础]

今天翻了一本计算机基础的书籍,其中十进制.二进制.八进制.十六进制之间的转换挺有意思的,也容易犯糊涂,特温故而知新. 十进制数制系统 十进制数制系统包括 10 个数字:0.1.2.3.4.5.6.7.8.9 基为:10        逢十进一,如3+7=10,20+80=100 二进制数制系统 计算机中使用二进制表示数据 二进制包括两个符号:0和1 二进制逢二进一:(1+1)2=(10)2 二进制的基为2 示例:1000101100101101 八进制数制系统 用于缩短二进制的数字长度 八进制基

十进制、二进制、八进制、十六进制互相转换

十进制数由0~9共10个数字字符组成,在十进制数的每一位上满十进一,在十进制每一位中表示最大数字为9. 二进制数由0和1两个数字字符组成,在二进制中“逢二进一”,在二进制每一位中表示最大数字为1. 八进制是由0~7共8个数字字符组成,在八进制中“逢八进一”,在八进制中每一位中表示最大数字为7. 十六进制是由0~9.A.B.C.D.E.F共16个字符组成,在十六进制中“逢十六进一”,在十六进制中最大的数是F. 首先,讲讲十进制转二进制: 例: 十进制要转二进制 就拿55除以2 55/2=27余1,

JS字符串与二进制的转化

JS字符串与二进制的相互转化 1 2 3 4 5 //字符串转ascii码,用charCodeAt(); //ascii码转字符串,用fromCharCode(); var str = "A"; var code = str.charCodeAt(); var str2 = String.fromCharCode(code); 十进制转二进制 1 2 3 var a = "i"; console.log(a.charCodeAt()); //105 console.

计算机中十进制转二进制的相关技巧

**关于计算机中十进制转二进制的相关技巧** 下面我们用二种方法进行对比: 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法.具体做法是:用2整除十进制整数,可以得到一个商和余数:再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来. 如: 789=1100010101(二进制) 789/2=394 余1 第10位 394/2=197 余0