巩固通用计算机二进制位运算相关内容,增强数据加解密的能力

# 一。位运算的结果与参与运算的变量的符号有关

二进制正负表示方法

  • 原码
  • 反码
  • 补码

这里我们只会用到原码与补码
通用位运算 & | ^ << >> ~

# 当有负数参与时

首先进行与正数相同的位运算 (负数都是补码表示的)

# & | ^

// 进行按位与 & amp;
1 1 1 1 1 1 0 0 = -4
0 0 0 0 0 1 0 1 = 5
————————
0 0 0 0 0 1 0 0 = -4 & 5 = 4
// 进行按位与 & amp;
1 1 1 1 1 1 0 0 = -4
1 1 1 1 1 0 1 1 = -5
————————
1 1 1 1 1 0 0 0 = -4&-5 = -8
————————————————

# <<>>

对于 << >> 移位操作
<< 二进制整体左移 (符号位和前面的去掉),会在低位补 0, 不论正负都一样
>> 二进制整体右移

  • 对于正数,会在高位补 0
  • 对于负数,会在高位补 1
正数右移
0 0 0 0 0 0 0 0 0 1 0 1 = 5
0 0 0 0 0 0 0 0 0 0 0 1 = 5>>2 = 1
负数右移
1 1 1 1 1 0 1 1 = -5
1 1 1 1 1 1 1 0 = -5>>2 = -2
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

PangBai 微信支付

微信支付

PangBai 支付宝

支付宝

PangBai 贝宝

贝宝