补码
来源:互联网 发布:linux和windows的优劣 编辑:程序博客网 时间:2024/04/30 10:17
编程时可以把一个正数取反加一, 得到想要的负数;
http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
http://www.ruanyifeng.com/blog/2009/08/twos_complement.html
2的补码的本质
在回答2的补码为什么能正确实现加法运算之前,我们先看看它的本质,也就是那两个步骤的转换方法是怎么来的。
要将正数转成对应的负数,其实只要用0减去这个数就可以了。比如,-8其实就是0-8。
已知8的二进制是00001000,-8就可以用下面的式子求出:
00000000
-00001000
---------
因为00000000(被减数)小于0000100(减数),所以不够减。请回忆一下小学算术,如果被减数的某一位小于减数,我们怎么办?很简单,问上一位借1就可以了。
所以,0000000也问上一位借了1,也就是说,被减数其实是100000000,算式也就改写成:
100000000
-00001000
---------
11111000
进一步观察,可以发现100000000 = 11111111 + 1,所以上面的式子可以拆成两个:
11111111
-00001000
---------
11110111
+00000001
---------
11111000
2的补码的两个转换步骤就是这么来的。
0 0
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- linux下spf13-vim安装
- centos7安装mysql及远程访问设置(yum)
- 【LWJGL官方教程】游戏逻辑
- 记录iOS的消息推送
- 2015-12-13复习之CSS3选择器
- 补码
- C语言总结
- HDU 1342 Lotto
- btrfs 使用指南 - 1 概念,创建,块设备管理,性能优化
- bzoj1854[Scoi2010]游戏
- Company A面试 笔试 : 爬山 算步骤 问题
- servlet复习(二)HTTP Servlet API
- 使用golang的标准库搭建网站--3.模板函数
- 三大图片缓存库对比