鱼C论坛

 找回密码
 立即注册
查看: 2824|回复: 4

求助。熟知补码的鱼友请进来帮看下。

[复制链接]
发表于 2012-1-18 04:26:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
看到补码的章节,听得不的很懂,于是去下载了关于补码的讲解视频。
毛主席说的好!自己动手丰衣足食,于是边看教学视频边打开了我电脑上自带的 伟大的 计算器!(当然用的是科学型!)
慢慢开始计算。
老师说道  F6计算成-10的方法。
就是 在计算器16进制下 输入F6 然后转换为2进制 然后再 -1 然后再 取反 最后再转换为 10进制! 结果= 10  也就是 -10

那老师在专门讲补码的课程里说到 7 的正数2进制表示方式为0000111  -7 在在2进制里表示为 11111001
计算方式我计算过·2进制确实=这个。但 转换为 10进制或者16进制的时候却不是=7!
居然是
10进制=249
16进制=F9
求解·如何更灵活的去掌握补码!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-18 10:31:45 | 显示全部楼层
因为计算器把你的数当成无符号型的数来计算了。。你试着自己动手算一下。。无符号型的11111001的十进制或十六进制与计算器算出来的是不是一样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-18 11:48:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-18 18:01:59 | 显示全部楼层
1111 1001   你把它当成无符号数了,所以 10进制=249 16进制=F9 ,
你用的计算器转换的吧,也就是说你把前面的1111符号位当成了有效位来计算的。

当一个有符号型二进制数的最高位是1的时候说明它是负数,求出补码,转换进制,然后加负号。
如:有符号型二进制字节数据 1111 1100   
       转有符号型十六进制:4位二进制数用一位十六进制数表示 1111 1100 = FC (十六进制没有用前面加负号的表示方式)
       转有符号型十进制:最高位是“1”为负数,求补码得:0000 0100(十进制 4) 然后再加负号得 - 4

用16进制的数值表示的有符号型数据,告诉你个简单的判断方法:当最高位大于等于8h时为负数,当最高位小于等于7时为正数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-18 23:20:26 | 显示全部楼层
;P 路过学习了,确实很绕
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 18:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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