鱼C论坛

 找回密码
 立即注册
查看: 8702|回复: 16

深入理解计算机系统(第三版) 练习题2.21

[复制链接]
发表于 2016-12-5 14:05:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 哈拉5897 于 2016-12-5 15:24 编辑

假设在采用补码运算的32位机器上对这些表达式求值,描述强制类型转换和关系运算的结果
-2147483647-1u<2147483647 这个答案为0,
-2147483647-1u<-2147483647 这个答案为1,
为什么啊...2147483647的补码不是2147483647吗?为什么-2147483647-1u<2147483647u结果是0啊?
还有我调试-2147483647-1u<-2147483647的时候看到,为什么2147483648<2147483647结果又为1了啊?
捕获11.PNG
捕获22.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-5 14:32:02 | 显示全部楼层
本帖最后由 哈拉5897 于 2016-12-5 14:36 编辑

这样又可以解释第二个问题了...有点晕...
捕获33.PNG
捕获44.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-5 14:44:42 | 显示全部楼层
但是书上说,当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C语言会隐式地将有符号参数强制类型转换为无符号数,并假设这两个数是非负的,来执行这个运算.

所以其它的都能按这个说法解释通,只有-2147483647-1u<2147483647 这个答案为0,不知道怎么解释....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-5 14:58:39 | 显示全部楼层
本帖最后由 哈拉5897 于 2016-12-5 15:19 编辑

一个是10000000000000000000一个是011111111111111111....好吧
但是为什么-2147483647-1u<2147483647u结果是0啊...是我哪里没理解对吗...还是说这种情况是比较特殊的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-5 17:16:37 | 显示全部楼层

回帖奖励 +1 鱼币

哈拉5897 发表于 2016-12-5 14:58
一个是10000000000000000000一个是011111111111111111....好吧
但是为什么-2147483647-1u

1. -2147483647-1u<2147483647 这个答案为0,
2. -2147483647-1u<-2147483647 这个答案为1,

int跟unsigned int比大小,默认会全转为unsigned int,所以
item 1: 0x10000000-1(0x01111111)会等于2147483647(0x01111111)
item 2: 0x10000000-1(0x01111111)<-2147483647(0x10000000)
所以item 1为0、item 2为1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-16 12:10:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-16 12:11:12 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-18 13:15:59 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2018-11-30 14:13:15 | 显示全部楼层

回帖奖励 +1 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-22 15:48:51 | 显示全部楼层

回帖奖励 +1 鱼币

学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 12:37:42 | 显示全部楼层

回帖奖励 +1 鱼币

楼主问题解决了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 15:22:12 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-10 13:10:28 | 显示全部楼层

回帖奖励 +1 鱼币

这是c语言吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 17:55:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-16 17:27:36 | 显示全部楼层
学习一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-16 17:35:41 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-10 22:14:33 | 显示全部楼层
感谢楼主,刚好在做csapp的课后练习题,没看懂他书上的案例看了你的代码稍微理解一点点了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 13:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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