所以我有这个函数在c:
中返回二进制表示long int int2bin(int d)
{
int rem, pow = 1;
long int b = 0;
while(d > 0)
{
rem = d % 2 ;
b += (pow * rem);
d /= 2;
pow *= 10;
}
return b;
}
因此我想知道如何使用bin2int()函数:
long int bin2int( bin b);
你会像这样使用它:
bin2int(10011);
我可以这个
printf("%i\n", bin2int(10011));
得到19
答案 0 :(得分:2)
分别用2
和10
替换函数中的10
和2
。
答案 1 :(得分:1)
二进制,十六进制和十进制只是表示相同数字的不同方式。例如,所有这些表示等同于 - 十进制中的27 =十六进制中的0x1b =二进制中的0b11011。
您可以使用任何格式指定数字作为期望数字的函数的参数(int,unsigned int,甚至char等)。
例如,为了打印您的二进制数,您可以printf("%i\n", 0b10011)
,这将为您提供数字19.您可以将语句写为printf("%i\n", 19)
(十进制)或printf("%i\n", 0x13)
(十六进制)。
答案 2 :(得分:0)
在伪代码中:
int result = 0;
int ci = 1;
string s = stringof(10011).reverse();
for(int z=0; z < s.length; z++,ci = ci * 2)
{
if(s[z] == '1')
result += ci;
}