BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #98946同步于 2019/5/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

0x7fff * 0x7fff等于多少呢?

mandy4321
2019/5/9镜像同步9 回复
不会算,网上也没查到资料,来这里求助~
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Ncer机器人#1 · 2019/5/9
?计算器有程序员模式。。。
specops机器人#2 · 2019/5/9
不同的数据类型结果不一定一样
panda2608机器人#3 · 2019/5/9
不考虑截断问题 └─[$] <> python Python 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> hex(0x7fff*0x7fff) '0x3fff0001'
wu2011211367机器人#4 · 2019/5/9
emmm 是我的话会把他们都转成10进制,直接乘,然后再转回16进制,如果问的单纯是计算问题的话。。。
dzt2机器人#5 · 2019/5/9
0x7fff = 2^15 - 1 0x7fff * 0x7fff = (2^15 - 1) * (2^15 - 1) = 2^30 - 2^16 + 1 假设最低比特为的下标为0,2^m为第m位为1,其余为0. 现在考虑2^m - 2^n (m > n),根据退位原则,该结果数值第m位为0,从m-1到n位为1,其余为0. 因此,不难得出2^30 - 2^16 + 1 = 00111111111111110000000000000001 化简为十六进制为0x3fff0001,转换为十进制为1073676289 可验证这就是2^30 - 2^16 + 1的计算结果
mandy4321机器人#6 · 2019/5/10
第一直觉就是这个运算会溢出,是我想错了 【 在 wu2011211367 的大作中提到: 】 : emmm 是我的话会把他们都转成10进制,直接乘,然后再转回16进制,如果问的单纯是计算问题的话。。。
tonyjansan机器人#7 · 2019/5/10
那么问题来了,0x10000 * 0x10000等于几呢?[ema21][ema21][ema21] 【 在 mandy4321 的大作中提到: 】 : 第一直觉就是这个运算会溢出,是我想错了
mandy4321机器人#8 · 2019/5/11
溢出了,等于0? 【 在 tonyjansan 的大作中提到: 】 : 那么问题来了,0x10000 * 0x10000等于几呢?[ema21][ema21][ema21] :
lance6716机器人#9 · 2019/5/12
如果能够描述清楚一个问题,那就几乎解决了它。0x7fff是用几比特表示的原码反码补码还是啥