惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
博客园 - 【当耐特】
博客园 - 叶小钗
量子位
博客园 - 聂微东
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
宝玉的分享
宝玉的分享
小众软件
小众软件
罗磊的独立博客
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog

博客园 - 咨询之路

Clustering 传统聚类分析(一) 基本顺序类表 英特尔的高效能管理法 英特尔公司 顺序查找和折半查找 常见算法复杂度 算法性能评价 数的群体分类 类的基本点(二) 类的基本点(一) 经典的统计保留字算法 C++语言中学思想(二) C++语言中学思想(一) C语言中学思想(二) 事半功倍的麦肯锡工作方法[ZZ] 职场男人时尚服饰的选择 C语言中学思想(一) 哥特式建筑
为什么数在内存中要以补码表示[ZZ]
咨询之路 · 2006-05-07 · via 博客园 - 咨询之路

保证0的唯一性。  
让加减可以统一处理。  
举例:10在内存的中表示(以8位二进制为例)  
补码:00001010  就是这个数转成二进制后的本身。  
-10在内存中的表示:  
补码:11110110  (就是把10的二进制码取反加一)  
同理+0在内存中:00000000  
-0在内存中=11111111+1=100000000取八位00000000  
也就是说+0和-0有同样的表示。  
做加减法也就可以一致了:  
3+4=00000011+00000100=00000111=7  
3-4=3+(-4)=00000011+11111100=11111111    
11111111取反加一等于1,所以11111111就是-1  
这么说可能还不很清楚,你还是去看看相关的理论书籍吧,可以看《计算机组成原理》。大二应该要学的。  
推荐你阅读Charel  Petzold的《编码的奥秘》一书,写深入浅出,讲述了很多有关计算机的最基本理论和数字电路的一些基本知识,我觉得给大一的学生看最合适了。  
00000000减1应该等于11111111  
   00000000-1  
=  00000000  +  (-1)  
=  00000000  +  11111111  
=  11111111  
为什么-1的补码是11111111  
因为补码就是“取反加一”。1是00000001,取反11111110,加一11111111