c语言中10010100为啥是-20

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中10010100为啥是-20相关的知识,希望对你有一定的参考价值。

最高位代表是负数的意思,后面是16加4因此,该数就是-20 参考技术A 对于有符号整数,最高位是用来区别正数和负数的符号位。处理器默认采用补码的形式表示有符号整数,最高位为0表示正整数,最高位为1表示负整数。对于10010100这个数最高位是1表示负数啊,数值呢就是0010100用按权展开就是2^4+2^2=20,即10010100表示-20本回答被提问者采纳

请教c语言中打印变量的大小被警告是为啥(VS2019/Debug/x64)?

需要改为
printf("%llu",sizeof(pc)); 或printf("%d",(int)sizeof(pc));
因为在x64 环境下sizeof()返回的是一个64位无符号数。
参考技术A 64位的编译器,sizeof求pc指针长度,即求pc的内存地址,是一个64位二进制数,%d已经无法表示,就发生了这个警告,警告已经明确提示了这个问题。本回答被提问者采纳

以上是关于c语言中10010100为啥是-20的主要内容,如果未能解决你的问题,请参考以下文章

C语言文件问题:为啥下面程序会有乱码输出?

c语言输出的最后总是以“0”结尾是为啥?

c语言这个逗号表达式的结果是啥,为啥?

c语言里面,我for语句的循环跨度如果想是0.5应该怎么打呢,平时就是1++那么1+=0.5为啥

c语言如果用字符串类型输出字符数组,字符数组最后一个是0,那么为啥会出现乱码

c语言 这段代码是啥意思,结果为啥是20,20