二进制的位运算总结

一、计算数值

1.与运算&

1)0x*****&1               运算后不变 (1&1=1,1&0=0 ==>0->0,1->1)

2)0x*****&0               运算后置零 (1&0=0,0&0=0 ==>0->0,1->0)

a.可以用if ((a & 1) == 0)代替if (a % 2 == 0)来判断a是不是偶数

2.或运算 |

1)0x***** |               运算后置一 (0|1=1,1|1=1 ==>0->1,1->1)

2)0x***** |               运算后不变 (1|0=1,0|0=0 ==>0->0,1->1)

3.异或运算 ^

1)0x***** ^1               运算后取反 (1^1=0,0|1=1 ==>0->1,1->0)

2)0x***** ^              运算后不变 (1^0=1,0|0=0 ==>0->0,1->1)

a.数字交换 a=1,b=2

         a ^= b;
         b ^= a;
         a ^= b;      ->         a=2,b=1

b.部分反转 (与1异或)

反转X的低四位:X=1010 1110  ,  Y=0000 1111

                                X^Y=1010 0001

  • 1、交换律
  • 2、结合律                                             (a^b)^c = a^(b^c)
  • 3、对于任何数x                                    x^x=0        x^0=x
  • 4、自反性                                             a^b^b = a^0 = a;

3.取反运算~

1)运算位取反

a.最低位置0:        a & ~1

4.左移运算<<

左边丢弃,右边补0 

5右移运算<<

右边丢弃,正数左补0,负数左补1

二、计算规则

1.两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算

  • 1)如果整型数据为正数或无符号,左边补0。
  • 2)如果整型数据为负数,              左边补1。

2.复合赋值运算

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
二进制运算包括加法、减法和乘法。在二进制数的加法中,根据“逢二进一”的规则,0加0等于0,0加1等于1加0等于1,1加1等于0并进位1。例如,1110和1011相加的过程是:1 1 1 0 + 1 0 1 1 ---------- 1 1 0 0 1。\[1\] 在二进制数的减法中,根据“借一有二”的规则,0减0等于0,1减1等于0,1减0等于1,0减1需要借位,借位为1。例如,1101减去1011的过程是:1 1 0 1 - 1 0 1 1 ------------ 0 0 1 0。\[1\] 在二进制数的乘法中,可以仿照十进制数的乘法进行。由于二进制数的乘数位只有0或1,所以二进制乘法更为简单。乘法的法则是:0乘0等于0,0乘1等于1乘0等于0,1乘1等于1。例如,1001和1010相乘的过程是: 。\[1\] 需要注意的是,在计算机中,二进制数的表示方式有补码和原码两种形式。补码是计算机中存储负数的一种方式。在补码中,符号位为1表示负数,符号位为0表示正数。补码的转换需要将补码减一再取反。例如,32767的二进制为0111 1111 1111 1111,将其转换为原码得到1111 1111 1111 1111,即-32767。\[2\] 总结起来,二进制运算包括加法、减法和乘法。在计算机中,需要注意补码的表示方式和转换。 #### 引用[.reference_title] - *1* [二进制运算](https://blog.csdn.net/qq_36448587/article/details/121102019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [计算机中的二进制运算](https://blog.csdn.net/weixin_28939637/article/details/119047563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值