个人总结之位运算和与运算

本文详细介绍了位移运算符(左移<< 和右移>>)的功能及使用方法,并深入探讨了位运算符(与&、非~、或|、异或^)的基本原理与应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

位移运算符

<<:

表示左移,左移的N位数,表示原来的数乘以2*N。向左移动一位就等同于原来的数乘以了2。

例子:a<<num,将a向左移num的位数。运算原理就是将a(十进制)转换为二进制表达形式,剔除num个最高位,将剩余的数字按按顺序向左移动num位,在最低位补num个0。

如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。如果左移的是byte 和short类型的,他们会自动转换成int类型。在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方 

同理,

>>:

表示右移,右移N位数,表示原来的数除以2*N。向右移动一位就等于原来的数除以2.

例子:a>>num,将a向右移num的位数。运算原理就是将a(十进制)转换为二进制表达形式,剔除num个最低位,将剩余的数字按按顺序向右移动num位,在最高位补num个0。


位运算符包括: 与(&)、非(~)、或(|)、异或(^)


  &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 


      | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 


      ~:0变1,1变0                                                     


      ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值