如何制作一个带二进制参数的函数?

时间:2011-09-05 10:24:47

标签: c binary

所以我有这个函数在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

3 个答案:

答案 0 :(得分:2)

分别用210替换函数中的102

答案 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;
}