c - 按位运算符的幂 2 的模数?

标签 c math bit-manipulation bitwise-operators bitwise-and

  1. 2 的幂的模如何仅作用于二进制数的低位位 (1011000111011010)?
  2. 这个数 mod 2 to power 0, 2 to power 4 是多少?
  3. 2 的幂与模运算符有什么关系?它是否具有特殊属性?
  4. 有人能给我举个例子吗?

讲师说“当你取模的 2 次方时,你只需取它的低阶位”。我不敢问他是什么意思 =)

最佳答案

他的意思是,取 number mod 2^n 等同于剥离除 n 之外的所有最低阶 (最右边) number 的位。

例如,如果 n == 2,

number      number mod 4
00000001      00000001
00000010      00000010
00000011      00000011
00000100      00000000
00000101      00000001
00000110      00000010
00000111      00000011
00001000      00000000
00001001      00000001
etc.

换句话说,number mod 4number & 00000011 相同(其中 & 表示按位与)


请注意,这在 base-10 中完全相同:number mod 10 为您提供 base-10 中数字的最后一位,number mod 100 为您提供最后两位数字等

关于c - 按位运算符的幂 2 的模数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670715/

相关文章:

自定义控件和窗口消息

javascript 当求和时返回 NaN

c - 如何对无符号整型使用算术右移?

Java打印整数与Integer.toHexString() : Different outputs

c - Linux 内核模块文件关闭不太正确

c - 如果我给指针一个普通值会怎样

c - 为什么在输入大于 9 x 的值后无法输入更多输入?

PHP 长公式计算给出错误答案?

c# - 将矩形拆分为 n 个较小的矩形并计算每个中心的算法

bit-manipulation - 如何使用按位运算符执行乘法?