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