c语言位数拆分讲解,c语音位操作详解

本文详细介绍了C语言中的位操作符,包括按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)和右移(>>)。通过实例展示了如何使用位运算符直接交换两个变量的值、快速进行乘除运算以及如何在寄存器中设置和清除特定位置的位。还给出了POJ 3748题的解决方案,该题要求在32位寄存器中修改特定位置的位。
摘要由CSDN通过智能技术生成

C语言的设计具备了汇编语言的运算能力,它支持全部的位操作符。位操作符是对字节或字中的位进行测试、置位或移位处理,在对微处理器的编程中,特别适合对寄存器、I/O端口进行操作。

6种伟操作符:

(1) & :按位“与”——仅当两个操作数为1时,结果为1,否则为0。如:1000 1000  & 1000 0001  = 1000 0000;

(2) | :按位“或”——仅当两个操作数为0时,结果为0,否则为1。如:1000 1000 | 1000 0001 = 1000 1001;

(3) ^:按位“异或”——仅当两个操作数不同时,相应的输出结果才为1,否则为0。

如:1000 1000 ^ 1000 0001 = 0000 1001 ;

(4) ~ :“取反”——把1置为0,0置为1。如:~1000 1000 = 0111 0111;

(5) <

(6) >>: “右移”——将变量的各位按要求向右移动若干位。如:0000 1000>>3=0000 0001;

位运算符的应用:

(1)直接交换两个变量的值

例如,若有变量a = 3,b = 4,想要交换它们的值,可以做如下一组操作:

a ^ = b

b ^ = a

a ^ = b

首先,a ^ = b:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值