E?X % 256 = ?L
在 256 以 10 为底且 % 是模数函数的情况下,这似乎总是有效的。
为什么?
“mod 256”是除以 256 后的余数。
在二进制中,这是最低的 8 位(因为 256 是 2 到第 8 位)。
这就像“mod 2”为您提供最低有效位(0 或 1)。
在(十进制,以 10 为底)上,“mod 100”为您提供最后两位小数(2013 mod 100 => 13)。
这只是数学的工作方式。如果将数字x除以m n ,余数将是x以m为底的最低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 位。
简单:当您使用 mod by256
您实际上是在使用 mod by100000000
例如:假设你有一个 32 位的数字11110011111111001111011011110000
,然后除以256
(以 10 为底)/ 100000000
,那么你基本上就是取出了数字的最后 8 位11110000
,你可以这样想。十进制假设你想要最后 4 位数字,所以你必须取 mod by 10000
(base 10) 。二进制数的情况类似