找回密码
 注册
关于网站域名变更的通知
查看: 384|回复: 2
打印 上一主题 下一主题

关于二进制补码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-19 11:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
3 P- \0 ]0 D( o* u3 w' _+ W
如题  在图片中有关于补码的表达式 1 @5 D1 A! |7 {
关于-2n-1次方  我的理解就是最大值 比如7位二进制数 转换成10进制就是-127 转换成二进制原码就是1 1111111
2 E  v1 q* l! {  [6 j可这里为什么要加上自己本身的原码才能变成补码呢,这点我有些不解。2 m! ?/ p, ^3 s' X
关于补码运算 我的理解是这样 如果125减去25 等于100常规的做法是这样
- K+ @" ?4 z; l0 x( G; Q8 E5 r5 J如果换成补码加法 就变成125+975(25的补码前数是100所以必须取100的最大值补码)等于1100,前面的进位丢掉就变成了100/ M& F7 V5 I& h0 ?+ l; g

/ d1 B& N8 u" j+ P, D  F8 D但从公式上理解就不对了  哪位大神能给我解释下吗 ?非常感谢!
& p8 `4 I' Z# J- Q2 q. ?( t+ V

该用户从未签到

2#
发表于 2019-7-19 18:10 | 只看该作者
  T* \" K9 X# ?" n7 l' m
其实补码要用另外的思路理解,处理器的数据位是8位
' T/ I2 }8 D9 V5 z% i2 K那-1加上1应该为0啊,
; M% u* B) ]* l1 o6 b" [$ u1 _那8位的什么加上1是0呢,
8 m9 U. b' I# Q& T9 W只有ffh+1h=100h,' u' j, c0 C) S4 _4 L
由于是8位数前面的1溢出了不就是0么; X" X* W% j4 p9 h  V3 X) B
  • TA的每日心情
    开心
    2019-11-20 15:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2019-7-19 18:11 | 只看该作者
    计算机在计算两个数的加减乘时候,其实都是按照无符号数计算的,也就是说没有什么有符号加法指令和无符号加法指令,就一个加法指令,但是比较指令是分有符号和无符号指令的,记住在你声明数据类型时如果是无符号的最高位的加权就是2的(n-1)幂,如果是有符号最高为的加权是负的2的(n-1)幂,其他位的加权都是正的。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-12 01:45 , Processed in 0.140625 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表