⑴ 十进制如何转二为二进制(c语言)
c语言编程将十进制转化为2进制可按手工转换规则进行程序转换。
整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。
循环将整数进行除2取余数,余数存储到数组中。
当整数整除为0时,结束循环
逆序输出数组,得到转换结果
参考代码:
#include <stdio.h>
void main()
{
int c[32],i=0,n;
scanf("%d", &n) ; //输入待转换整数n
do {
c[i++]=n%2;
n/=2;
} while(n!=0) ;
for(i--;i>=0;i--)
printf("%d",c[i] );
printf("\n");
}
⑵ 求高手指点,在C语言的编程中,如何实现十进制的负整数转换成二进制
负数在计算机内部是用补码表示的
例如 -1
1的原码是 0000 0001
则-1的反码是 1111 1110
补码是 1111 1111
所以 -1在计算机中表示为 1111 1111
二进制数中有符号数有符号位,该符号位为1表示是负数
比如:
11111111,如果是无符号数那么就代表:255,如果是有符号数就代表负127,最高位是符号位,为1,代表是负数,剩下的7位代表具体数值