c语言中char的-128是怎么计算的
2016-05-28 07:35
295 查看
计算机里面是用补码表示的...
10000000求原码的操作是:符号位为1,其余各位取反,然后再加1。
所以,10000000取反后就是11111111,把符号位去了就是01111111再加1就是10000000就是-128了。
可以说是因为10000000+1=10000001(-128+1=-127)嘛...
0x80可以表示为负数0,也可以表示为0x81减去1。
由于0的正负值相等,没有必要还来个负数0,因此,也就把0x80的意义规定为0x81减去1。而0x81为-127的补码,那么0x80就为-128的补码了。
10000000求原码的操作是:符号位为1,其余各位取反,然后再加1。
所以,10000000取反后就是11111111,把符号位去了就是01111111再加1就是10000000就是-128了。
可以说是因为10000000+1=10000001(-128+1=-127)嘛...
0x80可以表示为负数0,也可以表示为0x81减去1。
由于0的正负值相等,没有必要还来个负数0,因此,也就把0x80的意义规定为0x81减去1。而0x81为-127的补码,那么0x80就为-128的补码了。
相关文章推荐
- leetcode #46 in cpp
- leetcode #45 in cpp
- C语言程序设计感想 电信15-2 张寻 150206220
- C++队列与优先队列
- C++ 句柄类
- C++ string 字符串 结尾 标志 \0
- c++上机实验6-2
- CRC32校验算法C语言版(查表法)
- 简化版的SHA1算法C语言版
- 2阶节IIR算法C语言源码
- C语言版 256点FFT算法
- C语言修炼日记——extern
- HDOJ 1236 with three methods using C++
- 项目:文件压缩与解压
- C++ 马克思手稿问题(暴力循环)
- c++小技巧,宏定义工厂函数
- leetcode_137 Single Number II
- 【LeetCode-189】Rotate Array(C++)
- LeetCode34. Search for a range优雅解法
- JAVA学习(13) JAVA/C++互相调用 以及多线程