移位操作符,位操作符,在实际的编程中有什么作用
1个回答
展开全部
好吧,来几个例子……
注:C语言并没有规定用什么编码方案来表示数字,所以说位运算会增加“不可移植性”
(不过大多数C语言实现使用的编码方案都一样的……)
C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* -------------判断整数x是奇数还是偶数------------- */
/* 1、常规做法:看除以2的余数 */
if (0 == x % 2)
偶数
else
奇数
/*2、 使用位运算 */
if (0 == x & 1)
偶数
else
奇数
/* -------------把r、g、b混合成32位颜色------------- */
#define MAP_RGB(r, g, b) (((r) << 16) + ((g) << 8) + (b))
/* -------------从一个32位色中取出r、g、b------------- */
#define PIXEL_GET_R(pix) (((pix) & 0xFF0000) >> 16)
#define PIXEL_GET_G(pix) (((pix) & 0xFF00) >> 8)
#define PIXEL_GET_B(pix) (((pix) & 0xFF))
注:C语言并没有规定用什么编码方案来表示数字,所以说位运算会增加“不可移植性”
(不过大多数C语言实现使用的编码方案都一样的……)
C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* -------------判断整数x是奇数还是偶数------------- */
/* 1、常规做法:看除以2的余数 */
if (0 == x % 2)
偶数
else
奇数
/*2、 使用位运算 */
if (0 == x & 1)
偶数
else
奇数
/* -------------把r、g、b混合成32位颜色------------- */
#define MAP_RGB(r, g, b) (((r) << 16) + ((g) << 8) + (b))
/* -------------从一个32位色中取出r、g、b------------- */
#define PIXEL_GET_R(pix) (((pix) & 0xFF0000) >> 16)
#define PIXEL_GET_G(pix) (((pix) & 0xFF00) >> 8)
#define PIXEL_GET_B(pix) (((pix) & 0xFF))
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
51单片机中的工作寄存器是一种特殊的寄存器,它存储的数据可以在单片机的工作时钟周期内被修改。工作寄存器通常用于存储操作数、传输数据或执行其他常规操作。由于51单片机具有许多指令可以直接访问内部的工作寄存器,因此工作寄存器在单片机编程中具有重...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询