位运算:按位与、按位或、按位异或、按位非(补码 反码)

原码 补码 反码

计算机中的符号数有三种表示方法:原码、补码、反码。这三种表示方法都由符号位数值位两部分组成,符号位1表示负数,0表示正数。

二进制数在内存中是以补码的形式存放的。为了更好理解计算机内部的运算,可以将其理解为二进制的补码的运算。
而我们日常所用的是十进制,日常从十进制转换成的二进制为二进制原码。

引入补码和原码是为了理解计算机运算,更方便计算机做减法,所以补码和反码的定义是指定的,无需证明。

反码:正数的反码为其本身,负数的反码是其原码除了符号位外全部按位取反。
补码:正数的补码为其本身,负数的补码是将其原码的反码+1。
补码求原码:就是对该补码再求补码得到的就是其原码。

注意:反码是不包含符号位的按位取反,和全部的按位取反是不一样的。

位运算

位运算有四种:按位与&、按位或 | 、按位异或^、按位非~

  1. & :任意二进制位与0进行&运算,结果是0;与1进行&运算,结果是其原值。a&0 = 0;a&1 = a。
  2. | :任意二进制位与0进行 | 运算,结果为其原值;与1进行 | 运算,结果为1。a | 0 = a;a | 1 = 1。
  3. ^ :任意相同二进制位进行^运算,结果为0;任意不同二进制位进行 ^ 运算,结果为1。
元素1元素2&结果I 结果^结果
01011
10011
00000
11110
  1. ~ :按位取非,~ a = -(a+1)
    ~正数:①正数的二进制全部(包含符号位)按位取反(不是求反码),②对取反后的值除了符号位再取反即求反码,③+1。(其实就是取反符号位后+1)
    ~负数:①负数的二进制全部(包含符号位)按位取反,②+1,③不包含符号位再取反。

参考:按位取非的计算详解

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值