将2ⁿ转化为二进制数再与M进行模2乘法运算。
例:2*M
将2转化为二进制数结果为: 1 0 如右所示 。
若M=1 0 0 1 ,则 用1 0 与 1 0 0 1进行模2乘法运算(计算省略)可得:1 0 0 1 0 相当于M后加一个0.
同样地,2²*M, 2³*M,... , 2ⁿ*M 可依次类推。
^在C中是二进制的抑或运算,pow(doublen你是说阶乘。
不过在math?没有.h库里面有阶乘函数。%是求模运算
C=A%B;
C是结果;
注意:
AB都是整数类型(char,short,int,long,longlong(__int64))
B不能是0
C的符号与A相同,C的绝对值是A的绝对值模B的绝对值的结果。
2ⁿ*M
2*M
2²*M
2³*M
二进制就是第一位1 第二位2,第三位4正好就是在后面加0
把2∧n化成2进制数与M进行模2运算就可得到。