c语言中printf("%x",-1);为什么会输出-1的十六进制补码??
2017-08-14 17:09
417 查看
首先,关于原码补码反码的概念可以参考这个博客:
http://blog.csdn.net/czg13548930186/article/details/72808385
想了解float数据在计算机中如何存储可以参考这篇博客:
http://blog.csdn.net/lxl121181/article/details/77152330
计算机存储的时候是以补码存数的,输出以原码的形式输出!
比如: -1 (32位模式)
存:
1 000000000000000000000000000000 1<原>
1 111111111111111111111111111111 0<反-注意第一位是符号位不变>
1 111111111111111111111111111111 1<补>
输:<以有符号数输出且是负数 那么原码=补码再求补;其余输出原码=[补码]>
以%d形式<这是有符号数输出且是负数>:
1 111111111111111111111111111111 1<补>
1 000000000000000000000000000000 0<反>
1 000000000000000000000000000000 1<原>
第一为符号位为1 表示-,所以输出-1
以%x形式:<这是无符号数>:
1 111111111111111111111111111111 1<补>
1 111111111111111111111111111111 1<原>
不考虑符号所以,输出FFFFFFFF。
http://blog.csdn.net/czg13548930186/article/details/72808385
想了解float数据在计算机中如何存储可以参考这篇博客:
http://blog.csdn.net/lxl121181/article/details/77152330
计算机存储的时候是以补码存数的,输出以原码的形式输出!
比如: -1 (32位模式)
存:
1 000000000000000000000000000000 1<原>
1 111111111111111111111111111111 0<反-注意第一位是符号位不变>
1 111111111111111111111111111111 1<补>
输:<以有符号数输出且是负数 那么原码=补码再求补;其余输出原码=[补码]>
以%d形式<这是有符号数输出且是负数>:
1 111111111111111111111111111111 1<补>
1 000000000000000000000000000000 0<反>
1 000000000000000000000000000000 1<原>
第一为符号位为1 表示-,所以输出-1
以%x形式:<这是无符号数>:
1 111111111111111111111111111111 1<补>
1 111111111111111111111111111111 1<原>
不考虑符号所以,输出FFFFFFFF。
相关文章推荐
- c语言中printf("%x",-1);为什么会输出-1的十六进制补码??
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
- 【转】printf(&quot;%f/n&quot;,5)的输出结果为什么是0.000000
- 为什么printf("%f\n",5)输出0.000000
- C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- printf("%x",12)//按十六进制输出
- 转:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
- C语言中以十六进制输出字符型变量会出现'ffffff"的问题
- C语言输出函数printf("%AB", v);
- C语言中printf格式化输出函数
- c语言printf()输出格式大全
- C++---将十进制整数转换为补码输出(十六进制)
- c语言printf实现同一位置打印输出的实例
- C语言应用:将128位二进制数据转换为十六进制输出
- 为什么printf()用%f输出double型,而scanf却用%lf呢