C语言常用位操作符

本文介绍了C语言中的位操作运算符及其应用,包括按位与、按位或、按位异或等,并解释了原码、反码及补码的概念与计算方法。此外,还探讨了不同运算符的优先级。

1.      关于位操作运算符的初识:
在这之前,C语言中,八进制和十六进制的表示方法为:

int m = 010;定义八进制变量

int n = 0x10;定义十六进制变量

printf("%o\n",m);输出八进制变量

printf("%x\n",n);输出十六进制变量

C语言提供了6个位操作运算符,它们只能作用于整数操作数。

&     安位与(AND)  2个数转化为2进制,当相同位置上有1个为1,则结果为1

|      安位或(OR)    2个数相同位置均为1时,结果才为1

^      安位异或(XOR) 2个数相同位置的值不一样时候,结果为1,否则为0

<<    左移

>>    又移

~      安位求反(一元运算符) 按位取反

 

2.       关于原码、反码、补码的认识:

正数的反码和补码都是和原码相同的。

负数的反码是将原码除符号位之外的各位求反

负数的补码是将其反码的末位加一

采用补码的好处:

1)      计算机中数都是用补码来存储的,由于无符号类型和有符号的整数补码是其本身,则补码主要为负数设计

2)      采用补码,可以是负数的符号位参与运算,从而方便的用加法实现减法

 

3.      关于运算符优先级的认识:

运算符

结合性

() [] -> .

自左至右

! ~ ++ -- + - * (type) sizeof

自右至左

/ * %

自左至右

+ -

自左至右

<< >>

自左至右

< <= > >=

自左至右

== !=

自左至右

&

自左至右

^

自左至右

|

自左至右

&&

自左至右

||

自左至右

?:

自左至右

= += -= *= /= %= &= ^= |= <<= >>=

自右至左

,

自右至左

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值