JS十进制转换二进制-函数调用

本文介绍如何使用JavaScript创建一个名为toBins的函数,该函数接收一个正整数n并将其转换为二进制字符串。通过不断除以2并取余的方式来实现这一转换。以10为例,展示如何利用parseInt进行除法取整,最终得到二进制表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一个函数toBins,参数为一个正整数n。函数将会把传入的n转化为二进制字符串。

四个字:除2取余

下面以 10 为例子  注意js除法取整用parseInt
10 % 2==0   bins[bins.length] = 0
10 / 2%2==1   bins[bins.length] = 1
10 / 2 / 2%2==0   bins[bins.length] = 0
10 / 2 / 2 / 2%2==1   bins[bins.length] =1


        function toBins(n) {
            if(n == 0) return '0';
            var bins = []; //定义空数组     
            if (n % 2 == 0) { //偶数 
                bins[bins.length] = 0;   //最后一位是0
                while (1) {
                    if (parseInt(n / 2) % 2 == 1) {   //(n/2==5)%2==1      第三次循环尽量n==2 (2/2=1)%2==1
                        bins[bins.length] = 1;      //除2取余==1
                        n = parseInt(n / 2);      //n = 10/2               此时n==1进入判断,跳出循环
                        if (n == 1) {              ///判断n==1 跳出循环
                            break;
                        }
                    } else {
                        bins[bins.length] = 0;     // 第二次循环进来 n==5 (5/2=2)%2==0 除2取余为0
                        n = parseInt(n / 2);     //n==2 
                    }
                }
            }
            else { //奇数
                bins[bins.length] = 1;    //最后一位是1
                n = n - 1;      //奇数-1之后也是偶数,所以和偶数的循环判断是一样的
                while (1) {
                    if (parseInt(n / 2) % 2 == 1) {   //n/2=5
                        bins[bins.length] = 1;
                        n = parseInt(n / 2);      //n==5
                        if (n == 1) {
                            break;
                        }
                    } else {
                        bins[bins.length] = 0;
                        n = parseInt(n / 2);     //n==2
                    }
                }
            }
            var str = '';      //定义空字符串
            for (var i = bins.length - 1; i >= 0; i--) {    //循环倒叙遍历的余数
                if ((i + 1) % 4 == 0) {     //四位一空格 1000 0000
                    str += ' ' + bins[i];           
                }
                else {
                    str += bins[i];
                }
            }
            return str;
        }
        var result = toBins(0);      //1000 0000
        console.log(result);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值