byte
2015-06-10 15:40
204 查看
首先,难不免干点白痴般地事情,穷举一下... 正数,原码跟补码一样 +127, 0111 1111 +126, 0111 1110 +125, 0111 1101 +124, 0111 1100 +123, 0111 1011 +122, 0111 1010 ... +4, 0000 0100 +3, 0000 0011 +2, 0000 0010 +1, 0000 0001 0, 0000 0000 (无正负之分) 下面是负数了,值,原码,符号位不变其它取反,+1 -1, 1000 0001, 1111 1110, 1111 1111 -2, 1000 0010, 1111 1101, 1111 1110 -3, 1000 0011, 1111 1100, 1111 1101 -4, 1000 0100, 1111 1011, 1111 1100 -5, 1000 0101, 1111 1010, 1111 1011 -6, 1000 0110, 1111 1001, 1111 1010 -7, 1000 0111, 1111 1000, 1111 1001 -8, 1000 1000, 1111 0111, 1111 1000 -9, 1000 1001, 1111 0110, 1111 0111 -10, 1000 1010, 1111 0101, 1111 0110 -11, 1000 1011, 1111 0100, 1111 0101 -12, 1000 1100, 1111 0011, 1111 0100 -13, 1000 1101, 1111 0010, 1111 0011 -14, 1000 1110, 1111 0001, 1111 0010 -15, 1000 1111, 1111 0000, 1111 0001 -16, 1001 0000, 1110 1111, 1111 0000 -17, 1001 0001, 1110 1110, 1110 1111 ... -24, 1001 1000, 1110 0111, 1110 1000 ... -99, 1110 0011, 1001 1100, 1110 0100 ... -124, 1111 1100, 1000 0011, 1111 1101 -125, 1111 1101, 1000 0010, 1000 0011 -126, 1111 1110, 1000 0001, 1000 0010 -127, 1111 1111, 1000 0000, 1000 0001 看出点什么了没有? 如果没有,那么,给个提示, 再继续下去,下一个补码是什么呢? 当然是 -128, 先略过,再略过, 1000 0000 1000 0000,那么,它的原码是什么呢? 从补码求原码的方法跟原码求补码是一样的 先保留符号位其它求反: 1111 1111, 再加1:11000 0000, 超过了8位了 对,用8位数的原码在这里已经无法表示了 关键就在这里,补码 1000 0000 为 -128 是不用怀疑的(上面的穷举), 那么,回到原码处, 它的原码也是 1000 0000(超出的自动丢失), 1000 0000 在原码表示什么呢? -0, 但补码却规定0没有正负之分 转换一下思路,看看计算机里,是怎么运算的: 对于负数,先取绝对值,然后求反,加一 -128 -> 128 -> 1000 0000 -> 0111 1111 -> 1000 0000 现在明确了吧 所以, 8位有符号的整数取值范围的补码表示 1000 0000 到 0000 0000, 再到 0111 1111 即 -128 到 0, 再到 127 最终 -128 ~ +127 http://zhidao.baidu.com/link?url=JMBT_mjxArYF85VQM_9IkPh4j2o6mP6rCvzmvwz9L30BTlYeP6hP_QS65y5fYLzt7tn0hWlHQsxsgRRPpq_05K
相关文章推荐
- 面试-----公司和学生之间一道巨大的鸿沟
- 【BZOJ】【2527】【POI2011】Meteors
- 页面设计--CheckBoxList
- 图形学之UV坐标
- SendMessage、PostMessage原理
- 利用CoreGraphics画小黄人
- android 深圳宝体 达内全程学习课程转让
- css3 linear-gradient实现按钮
- CSS多行文本垂直居中【转】
- poj2140---herd sums
- 子矩阵问题
- jarsigner签名APK包
- 7.汽车品牌(表格分组数据)
- HTTP cookies 详解
- seajs模块化jQuery与jQuery插件
- 仿函数基础
- Android系统性能调优工具介绍
- Android---史上最牛最全android开发知识汇总
- 【iOS开发-动画】CAKeyframeAnimation创建动画
- uva11401(数学基础题)