以下函数可以将十进制数转为二进制数:
#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组成。再对这些余数进行逆置即可。
//10进制转为16进制(10).toString(16) // =>"a"
//8进制转为16进制
(012).toString(16) // =>"a"
//16进制转为10进制
(0x16).toString(10) // =>"22"
//16进制转为8进制
(0x16).toString(8) // =>"26"
//10进制转为2进制 //=>
(1111).toString(2) // => "10001010111"
//8进制转为2进制 //=>
(01111).toString(2) //=>"1001001001"
//16进制转为2进制 //=>
(0x16).toString(2) // => "10110" //2进制到10进制;
parseInt(10,2) //=>2
//2进制到10进制;
parseInt(100,2) //=>4
//16进制到10进制
parseInt(12, 16) //=>18
//8进制到10进制
parseInt(12,8) //=>10