#define bits(x) sizeof(x)*8
void decToBin(short x)
{
int temp[bits(x)];
int num = bits(x);
if(x < 0)
{
x = -x;
printf("-");
}
for(int i = 0; i < num; i++)
{
temp[i] = 1 && (x >> num-i-1);
printf("%d", temp[i]);
}
printf("\n");
}
void decToBin2(short x)
{
int a[bits(x)+1], flag = 1, count = 0;
int num = bits(x);
a[num] = '\0';
if(x < 0)
{
flag = -1;
x = -x;
}
//正序存储
for(int i = 0; i < num && x; i++)
{
a[i] = x % 2;
x /= 2;
count++;//记录循环的次数
}
if(flag == -1)
printf("-");
//逆序输出
for(i = count-1; i >= 0; i--)
printf("%d", a[i]);
/*
//逆序存储
for(int i = num-1; i >= 0 && x; i--)
{
a[i] = x % 2;
x /= 2;
count++;
}
if(flag == -1)
printf("-");
//正序输出
for(i++; i < num; i++)
printf("%d", a[i]);
*/
printf("\n");
}
void main()
{
decToBin(-32767);
decToBin2(-32767);
}
算法之十进制转换成二进制
最新推荐文章于 2020-12-16 10:19:49 发布