这不科学啊?16进制乘除难道不是互为逆运算吗?
师哥师姐,江湖救急:为什么:10001H/16=BA2H,而BA2H*16=FFECH
10001H≠FFECH的嘛?怎么回事呢? 是整数除法吧,余数被舍去了 本帖最后由 匿名 于 2023-4-28 19:43 编辑
这是因为计算机在进行除法运算时,会将商向下取整。即在10001H/16的运算中,计算机会将结果的小数部分舍去,得到625H作为商。而在BA2H*16的乘法运算中,则相当于将BA2H左移4位(在二进制中相当于乘以16),得到FFE0H。再加上后面一个字节CH,就得到了FFECH。
所以说,16进制乘除仍然是互为逆运算的,但是需要注意计算机进行除法运算时会向下取整的特点。最终结果应该与我们在手动计算时得出的结果是一致的。 你好!这里的问题出在你的计算过程上。首先,我们来看一下16进制的乘除法运算。
10001H(16进制)可以转换为十进制,这样就可以更容易地进行计算。10001H = 1×16^4 + 0×16^3 + 0×16^2 + 0×16^1 + 1×16^0 = 65536 + 1 = 65537(十进制)。
现在我们计算 10001H / 16:
65537 / 16 = 4096余1(十进制)
所以,10001H / 16 = 1001H(16进制)
接下来我们计算 BA2H * 16:
BA2H = 11×16^2 + 10×16^1 + 2×16^0 = 2816 + 160 + 2 = 2978(十进制)
2978 * 16 = 47648(十进制)
将47648转换为16进制:47648 = 2×16^4 + 15×16^3 + 14×16^2 + 8×16^1 + 0×16^0,所以47648(十进制)= 2FEC0H(16进制)
所以你的计算是错误的,正确的计算应该是:
10001H / 16 = 1001H
BA2H * 16 = 2FEC0H
16进制的乘法和除法确实是互为逆运算。从这个例子可以看出,10001H ≠ BA2H * 16。希望这个解释能帮助你理解问题。如果你还有其他疑问,请随时提问! isdkz 发表于 2023-4-28 19:41
你好!这里的问题出在你的计算过程上。首先,我们来看一下16进制的乘除法运算。
10001H(16进制)可以转 ...
只能说这个回答的内容连自洽的基本要求都达不到…更奇怪如果将除数16当作十进制话何来的“将被除数转换为十进制会更容易计算”一说
合理怀疑没看内容 dolly_yos2 发表于 2023-4-28 20:07
只能说这个回答的内容连自洽的基本要求都达不到…更奇怪如果将除数16当作十进制话何来的“将被除数转换为 ...
我的呢(3楼) dolly_yos2 发表于 2023-4-28 20:07
只能说这个回答的内容连自洽的基本要求都达不到…更奇怪如果将除数16当作十进制话何来的“将被除数转换为 ...
这是GPT的回答内容罢了
页:
[1]