读CH378的一些源码,里面有用&~和&两种运算,这里记录一下这两种运算的结果
程序源码
/*
C语言测试程序
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
int main()
{
uint16_t m =1000;
uint16_t n = 64;
uint16_t l = m&(n - 1);
uint16_t o = m&~(n - 1);
printf("剩余的数据个数%d\n", l);
printf("整除的最后一个数据的位置%d\n", o);
return 0;
}
程序的运行结果
可以看到:
- 运算符m&n的结果是求出m/n的剩余数据个数(余数)
- 运算符m&~n的结果是求出剩余数据的起始位置