数的机器表示的学习体会
来源:互联网 发布:php开源论坛程序 编辑:程序博客网 时间:2024/06/14 04:05
小弟自从学习数的机器表示后,对补码尤为不解。今天重新看了一下以前教材,略有体会,故分享之,愿能帮助同样迷茫的朋友。
废话少说。直入正题。
我们知道计算机的有符号数有三种表示法——原码、反码、补码。这里着重讲补码(只讨论整数)
问:四字长表示的机器数补码能表示-8,而原码、反码却不行?
答:由于公式编辑不了(或者我不会吧),整数原码、反码、补码的定义请自行参照。
-8,真值为-1000, 参照定义,原码和反码均无表示,为什么没有呢?我们看看原码和补码0的表示吧,参照定义
原码:[+0]=0000;[-0]=1000,四位数最多表示16个编码,而0占两个,试问-8如何表示,至于正负0为什么要出现,哥也不知Orz。反码也是类似。不赘述。看补码则不然,0只有 0000。
明白了吧,正是由于补码刚好还有一个编码剩余,-8可以表示出来。
问:不是说取反加一得补码吗?为什么-8取反加1不是1000???
答:首先,取反加1的数是必须先用原码表示,-8没有原码(四字长表示时),哪来的取反加一(不要乱套!!!要理解记忆),根据定义[-8]补=2^4-1000=1000
就说这么一点吧,如有错漏,请指正!!!
- 数的机器表示的学习体会
- 机器数的表示形式
- 机器数的原码、反码、补码、移码表示以及浮点数的二进制表示
- 程序的机器级表示(数据格式,操作数格式)
- 浮点数的表示
- 浮点数的表示
- 定点数的表示
- 浮点数的表示
- 数的表示方法
- 浮点数的表示
- 浮点数的表示
- 浮点数的表示
- 定点数的表示
- 浮点数的表示
- 不可表示的数
- 数的表示1
- 数的表示2
- 计算机数的表示
- Struts2插件 struts2-config-browser-plugin
- php中的namespace 与java中的package
- UVA 11029 Leading and Trailing
- Android采用SharedPreferences保存用户登录信息
- Linux设备模型分析之device(基于3.10.1内核)
- 数的机器表示的学习体会
- OCP-1Z0-053-V12.02-134题
- 数据表格
- 独自收集Cocos2d提供的字体!共57种(有对照的字体图)
- [LeetCode] Sum Root to Leaf Numbers
- 0x00000050 AGE_FAULT_IN_NONPAGED+AREA
- 串行算法并行化
- PPP协议体系的实现
- mysql索引