JS有没有将数字转成二进制的方法

JavaScript023

JS有没有将数字转成二进制的方法,第1张

将十进制转为二进制:

var a = 10

var b = a.toString(2)

b即为10的二进制表示。但是注意b此时是字符串。

toString()默认参数为10,即把数字转换为十进制字符串,可接受2-36整数作为参数。

将二进制转为十进制:

var a = "10100110"

var b = a.parseInt(a, 2)

b即为a的十进制表示。

parseInt将字符串转换为数字,接受两个参数,第一个是要转换的字符串,第二个可省略,表示要解析的数字基数,可接受2-36整数作为参数。默认情况下会自动判断:若字符串以0x开头,则之后的字符以十六进制解析;以0开头,以八进制解析,0-9,以十进制解析。

需要准备的材料分别是:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html的<script>标签中,用toString(2)表示二进制数,例如输入js代码:var a = 2019var b = a.toString(2)document.body.innerText = b。

3、浏览器运行index.html页面,此时会打印2019的二进制数。

以下函数可以将十进制数转为二进制数:

#include <iostream>

#include <malloc.h>

 

#define MAX 33

 

using namespace std

 

/* 十进制数转换为二进制数(字符串表示) */

char *decToBin(long num)

 

int main()

{

    long dec = 123456789

 

    cout<<"10进制数:\t"<<dec<<endl

    cout<<"2进制数:\t"<<decToBin(dec)<<endl

 

    return 0

}

 

/* 十进制数转换为二进制数(字符串表示) */

char *decToBin(long num)

{

    char *arr

    char temp

    int i, n

 

    arr = (char *)malloc(sizeof(char) * MAX)

    n = 0

    while(num > 0)

    {

        arr[n++] = num % 2 + '0'

        num /= 2

    }

 

    for(i=0 i<n/2 i++)

    {

        temp = arr[i]

        arr[i] = arr[n-1-i]

        arr[n-1-i] = temp

    }

    arr[n] = '\0' 

    return arr

}

1、十进制数是指各位数字全部由小于10的数字(0..9)组成的数值,如123、45678等。二进制数是指各位数字全部由小于2的数字(0..1)组成的数值,如10、1011等。将十进制数转换为二进制数是将全部由小于10的数字组成的数值转换为全部由小于2的数字组成的数值,如十进制数100转换为二进制数为1100100。

2、将十进制数转换为二进制数的算法是采用辗转取余法,即将待转换数不断除2取余,记录余数,用新的商继续除2取余,直到该数为零。由于余数小于2,故所有余数组成的数值全部由0、1组成。再对这些余数进行逆置即可。