繁体   English   中英

为什么此数学运算有效? (从32位寄存器获取8位寄存器)

[英]Why does this mathematical operation work? (Getting 8-bit register from 32-bit register)

E?X % 256 = ?L

这似乎总是可行的,其中256以10为底,%是模数函数。

为什么?

“ mod 256”是除以256的余数。

用二进制表示,这是最低的8位(因为256是2到8)。

就像“ mod 2”为您提供最低有效位(0或1)一样。

在(以十进制为基数的十进制数)上,“ mod 100”为您提供最后两位小数(2013 mod 100 => 13)。

这只是数学的工作方式。 如果将数字x除以m n ,则余数将是基数mx的最低有效n位数字。

例如,在以10为底的数字中,如果将任何数字除以10 n ,则除法的其余部分将是原始数字的最低有效n位数字。 例子:

     5 mod 10^1 =    5 mod 10  =  5
  1245 mod 10^2 = 1245 mod 100 = 45

二进制中确实发生了同样的事情-256是2 8 (或者如果愿意,则为二进制100000000)。 如果将任何数字除以100000000,则余数将是该数字的最低有效8位。

简单:当您乘以256 mod时,实际上是乘以100000000 mod

例如:假设您有32位数字11110011111111001111011011110000并将其除以256 (以10为底)/ 100000000那么您基本上就可以取出数字的后8位,即11110000 ,您可以这样想。 在十进制中,假设您想要最后4位数字,那么您必须将mod乘以10000 (以10为底)。 二进制数也是如此

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM