文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
网络安全实验课算MD5和SHA1的时候要用到循环移位,自己算嫌麻烦,于是写了个程序,变成宏定义就精简多了...
0x20是十进制的32,你是多少位的类型就换成多少就好了,这里是int。原理也很简单,两边一来一去然后或一下把空出来的0补全...
循环左移:
#define CROL(value, bits) ((value << bits) | (value >> (0x20 - bits)))
循环右移:
#define CROR(value, bits) ((value >> bits) | (value << (0x20 - bits)))
参数value是int型变量
参数bits是循环移位的位数
转载请注明:Slyar Home » 循环左移,循环右移的宏定义C/C++版