鱼C论坛

 找回密码
 立即注册
查看: 4702|回复: 15

紧急求助啊 !!被补码搞混了!!

[复制链接]
发表于 2013-2-19 21:38:26 | 显示全部楼层 |阅读模式

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

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

x
为什么-3 转成补码会是011 取反 变成100+1 变成101 在填充1 变成11111111111111111111111111111101(2)FFFFFFFD(16)
而不是 11 取反 变成 00 + 1变成 1 在填充 变成 32个1(2)FFFFFFFF(16)
而且 -74 又是 1001010 取反 变成110101 +1变成110110 在填充 变成 11111111111111111111111111110110 FFFFFF36
那个前面的0又不见了
那个0到底是怎么回事啊  (就是-3转补码第一步求3的二进制码是 011 的那个0)
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-19 21:38:58 | 显示全部楼层
哪位大神救救我啊  我脑子快炸了  那个0到底是什么情况啊
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-19 22:03:32 | 显示全部楼层
那是表示正负数的标志,0表示正数,1表示负数
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-19 22:15:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-20 14:19:16 | 显示全部楼层
  为什么就没人来帮帮我啊  
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-20 18:08:40 | 显示全部楼层
我没太理解lz纠结的0是怎么个回事,估计是概念问题。(lz选的字节数太多了,我有一个字节为例)
因为有符号型的第一位是符号位
所以lz说的第一步转化应该是1000 0011(因为3=0000 0011 ,将首位换成1,表示负数 。 同理74=0100 1010  -74=1100 1010)
然后取反 PS:第一位不变
变成1111 1100 再加1 变成1111 1101
lz的4字节就是中间多了好多00000,然后取反 就多了好多 11111.
-74也是这样。lz自己试试哈
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-20 18:35:08 | 显示全部楼层
:L想帮帮不上,见谅哇
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-20 18:41:22 | 显示全部楼层
gwcome 发表于 2013-2-20 18:08
我没太理解lz纠结的0是怎么个回事,估计是概念问题。(lz选的字节数太多了,我有一个字节为例)
因为有符号 ...

Are you 确定??  没勇气试了我 纠结一下午了脑子都......
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-20 18:41:56 | 显示全部楼层
gwcome 发表于 2013-2-20 18:08
我没太理解lz纠结的0是怎么个回事,估计是概念问题。(lz选的字节数太多了,我有一个字节为例)
因为有符号 ...

刚刚看C语言也能干大事是也在纠结这个
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-20 18:44:01 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-2-20 18:41
刚刚看C语言也能干大事是也在纠结这个

你不要告诉我你用手算的
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-20 18:46:08 | 显示全部楼层
gwcome 发表于 2013-2-20 18:44
你不要告诉我你用手算的

当然不是 只是 对 -3 变二进制是 是011 取反 而不是11 取反有疑问 为什么要加个零
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-20 18:50:14 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-2-20 18:46
当然不是 只是 对 -3 变二进制是 是011 取反 而不是11 取反有疑问 为什么要加个零

lz从哪看到  贴出来  一起看看
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-20 18:55:32 | 显示全部楼层
郝斌老师的 教程啊图片在附件里 啊啊.png

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-21 10:19:46 | 显示全部楼层
个人感觉求补码最好把各个位都写出来再求,那样就不会搞错
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-21 14:13:56 | 显示全部楼层
可能我在补码那一个视频中说的不够仔细,不知道朋友看了没有?

其实按照权位来理解就很好理解了。

世界上基本所有的操作系统都用补码来表示数。

补码表示的话最高位数表示负权,其他表示正权。

例如1000 0001 == -1*2^7 + 0*2^6 + ... +  1*2^0 == -128 + 1 == -127

例如0111 0001 == -0*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 1*2^0 == 64 + 32 + 16 + 1 == 113
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-23 14:52:39 | 显示全部楼层
顶起来,受教了,

                               
登录/注册后可看大图
支持支持























                               
登录/注册后可看大图

大概多少钱
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-8 04:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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