c语言位操作某一位置0,c语言的位操作

本文详细介绍了C语言中的位操作,包括基本位操作如或、与、异或、左移、右移等,以及如何获取和设置某位的值、循环移位、计算绝对值、判断符号、交换数值、位计数、二进制与GRAY码转换和位反转等实用技巧,是C语言位运算的全面指南。
摘要由CSDN通过智能技术生成

一、基本位操作

|

&

~

取反

^

异或

<<

左移

>>

右移

二、位操作的常见用法

1.获取某位的值

#define BitGet(Number,pos) ((Number)|= 1<

#define BitGet(Number,pos) ((Number) &= ~(1<

#define BitGet(Number,pos) ((Number) >> (pos)&1)) //用宏得到某数的某位

#define BitGet(Number,pos) ((Number) ^= 1<

2.设定某位的值(设为0或1)

方法一:

#define setbit(x,y) x|=(1<

#define clrbit(x,y) x&=~(1<

方法二:

置0,用0去‘与’

int a|=(1<

x就是某位需要置1的数字,如第四位置1为:int a |= (1<<4)

置1,用1去‘或’

int a&=~(1<

3.循环移位

#define ROTATE_LEFT(x, n) ((x) << (n)) | ((x) >> ((8 * sizeof(x)) - (n)))

#define ROTATE_RIGHT(x, n) ((x) >> (n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值