我正在编写一个将十进制转换为二进制的函数。它适用于小于1024的值,但我也需要它适用于8位数。到目前为止我的功能:
static long int decToBin(int dec)
{
int bit;
int k;
long int bin = 0;
for (bit = 32; bit >= 0; bit--)
{
k = dec >> bit;
if (k & 1)
{
bin += exponentiate(10, bit);
}
}
return bin;
}
我对比特方面的东西还比较陌生,所以问题可能很明显,但我很感激任何帮助。
编辑:我是用C编写的,使用GNUGCC编译器。
供参考
static void decToBin(int dec)
{
int bit;
int k;
for (bit = 31; bit; bit--)
{
k = (unsigned int)dec >> bit;
printf("%d", (k&1)?1:0);
}
k = (unsigned int)dec >> bit;
printf("%dn", (k&1)?1:0);
return;
}
一旦你明白了这是在做什么,你就可以实现你自己的。提示:您可能需要分配存储空间(32字节)。