重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
简单的位运算就可以了
泸州网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
#include stdio.h
void printBin(int num){
int i,k=31;
for(i=0;i32;i++){
printf("%d",(numk)1);//移位并输出
k--;
}
printf("\n");
}
int main(int argc, char* argv[])
{
int num;
printf("Please input a number, I will tell you what it really is:");
scanf("%d",num);
printf("It is binary display is:");
printBin(num);
return 0;
}
c语言补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1 (即在反码的基础上+1)。
[+1] = [00000001](原码) = [00000001](反码) = [00000001](补码) [-1] = [10000001](原码) = [11111110](反码) = [11111111](补码) 对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。 一、原码 求原码:X≥0,则符号位为0,其余照抄; X≤0,则符号位为1,其余照抄。 【例1】X=+1001001 [X]原 = 01001001 【例2】X=-1001001 [X]原 = 11001001 二、反码 求反码:若X≥0,符号位为0,其余照抄; 若X≤0,符号位为1,其余按位取反。 【例3】X=+1001001 [X]反 = 01001001 【例4】X=-1001001 [X]反 = 10110110 三、补码 求补码:若X≥0,符号位为0,其余照抄; 若X≤0,符号位为1,其余取反后,最低位加1。 【例5】X=+1001001 [X]补 = 01001001 【例6】X=-1001001 [X]补 = 10110111
0100000是八进制数。即二进制数:1000 0000 0000 0000。
z=value0100000;//意义就是取value的最高位。
if(z==0100000)//如果最高位是1,即为负数,需要求补
z=~value+1;//求补,即取反+1
else
z=value;