设为首页收藏本站 |天气与日历| 2025-07-01 星期二 17:56:00 (建党节) 乙巳(蛇)年 六月初七 酉时
     
切换到窄版

私人站点

 找回密码
 立即注册
搜索
查看: 107|回复: 0

移位运算符<< >>

[复制链接]

954

主题

954

帖子

3879

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3879
发表于 2021-12-9 22:16:39 | 显示全部楼层 |阅读模式
移位运算符
现在让我们了解一下C的移位运算符。移位运算符将位向左或向右移动。同样,我们仍将明确地使用二进制形式来说明该机制的工作原理。
左移 <<
        左移运算符<<将其左侧操作数的值的每位向左移动,移动的位数由其右侧操作数指定。空出来的位用0填充,并且丢弃移出左侧操作数末端的位。在下面例子中,每位向左移动两个位置。
(10001010) << 2
(00101000)
        该操作将产生一个新位置,但是不改变其操作数。

1 << 1 = 2;
2 << 1 = 4;
4 << 1 = 8;
8 << 2 = 32
左移一位相当于原值*2.
右移 >>
        右移运算符>>将其左侧的操作数的值每位向右移动,移动的位数由其右侧的操作数指定。丢弃移出左侧操作数有段的位。对于unsigned类型,使用0填充左端空出的位。对于有符号类型,结果依赖于机器。空出的位可能用0填充,或者使用符号(最左端)位的副本填充。

[C] 纯文本查看 复制代码
//有符号值

(10001010) >> 2

(00100010)     //在某些系统上的结果值

 

(10001010) >> 2

(11100010)     //在另一些系统上的结果

 

//无符号值

(10001010) >> 2

(00100010)    //所有系统上的结果值

用法:移位运算符
        移位运算符能够提供快捷、高效(依赖于硬件)对2的幂的乘法和除法。

number << n
number乘以2的n次幂
number >> n
如果number非负,则用number除以2的n次幂
下载.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|编程站点 ( 冀ICP备2023028127号-2 )|友链申请|

GMT+8, 2025-7-1 17:56 , Processed in 0.100939 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表