请问下面最后两句C程序什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/19 12:31:39
#define Sam_N 128
uchar J;
J=Sam_N>>1;
X=X>>7;

J=Sam_N>>1;
X=X>>7;

Sam_N右移一位,也就是Sam_N除以2,把结果给J
X右移七位,也就是X除以2的七次方,把结果给X

J=Sam_N>>1;
X=X>>7;

Sam_N右移一位,也就是Sam_N除以2,把结果给J
X右移七位,也就是X除以2的七次方,把结果给X

就这么简单!Sam_N =128你换上!

#define Sam_N 128
uchar J;
J=Sam_N>>1; //右移一位;
X=X>>7;//右移七位;

算术移位,>>1是右移1位,相当于乘以2
>>7是乘以2^7=128

是位移,比如说Sam_N=1100101,执行Sam_N>>1;
就是向右移一位,成了0110010,最低位都没有了,最高位都补成0;然后把这个移动的值传给J,就是那句J=Sam_N>>1;
X=X>>7;道理一样的,向右移七位,比如上面那个数是X,右移七位就成了00000001;再放回X。

应该是移位操作