C语言右移运算
发布时间:2023-05-18 13:57:43 所属栏目:语言 来源:
导读:右移运算符>>用来把操作数的各个二进制位全部右移若干位,低位丢弃,高位补 0 或 1。如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。
例如,9>>3可以转换为如下的运算:
>> 0000 0000 -- 0000
例如,9>>3可以转换为如下的运算:
>> 0000 0000 -- 0000
右移运算符>>用来把操作数的各个二进制位全部右移若干位,低位丢弃,高位补 0 或 1。如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。 例如,9>>3可以转换为如下的运算: >> 0000 0000 -- 0000 0000 -- 0000 0000 -- 0000 1001 (9 在内存中的存储) ----------------------------------------------------------------------------------- 0000 0000 -- 0000 0000 -- 0000 0000 -- 0000 0001 (1 在内存中的存储) 所以9>>3的结果为 1。 又如,(-9)>>3可以转换为如下的运算: >> 1111 1111 -- 1111 1111 -- 1111 1111 -- 1111 0111 (-9 在内存中的存储) ----------------------------------------------------------------------------------- 1111 1111 -- 1111 1111 -- 1111 1111 -- 1111 1110 (-2 在内存中的存储) 所以(-9)>>3的结果为 -2 如果被丢弃的低位不包含 1,那么右移 n 位相当于除以 2 的 n 次方(但被移除的位中经常会包含 1)。 【实例】对上面的结果进行校验。 #include <stdio.h> int main(){ printf("%d, %d\n", 9>>3, (-9)>>3 ); return 0; } 运行结果: 1, -2 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |