&(按位与运算)、|(按位或运算)、^(异或运算)

按位与运算符(&)

对俩个数据进行二进制按位与运算。

二进制规则:0&0=0;  0&1=0;   1&0=0;    1&1=1

      双1为1,否则为0.

例:102&255即:01100110&11111111=01100110 十进制为:102

        01100110

        11111111

--------------------

        01100110

负数按补码形式参加按位与运算

按位或运算符(|)

对俩个数据按二进制按位或运算。

二进制规则:0&0=0;  0&1=1;   1&0=1;    1&1=1

      有1为1,否则为0.

例:102&255即:01100110&11111111=11111111 十进制为:255

        01100110

        11111111

--------------------

        11111111

负数按补码形式参加按位与运算

异或运算符(^)

对两个数据按二进制位进行“异或”运算。

二进制规则:0^0=0;  0^1=1;  1^0=1;   1^1=0

      相同为0,否则为1

例:102&255即:01100110&11111111=11111111 十进制为:153

        01100110

        11111111

--------------------

        10011001

负数按补码形式参加按位与运算

取反运算符(~)

对1个数据按二进制位进行“取反”运算。

二进制规则:~0=1,~1=0

      取相反数

例:102即:01100110=10011001十进制为:153

左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)

例:40 = 10<< 2将a的二进制位左移2位,右补0

10=00001010左移俩位=00101000=10

注意:左移1位后a = a *2; 

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。即:a<<n ,若ad的二进制舍弃不包含1,则 a=a*n次方

右移运算符(>>)

将一个运算对象的各二进制位全部右移若干位(右边的二进制位丢弃,,正数左补0,负数左补1)

例:2 = 10>> 2将a的二进制位左移2位,右补0

10=00001010左移俩位=00000010=2

注意:操作数每右移一位,相当于该数除以2

左补0 or 补1得看被移数是正还是负

 

补码

正数:原码=反码=补码

[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补

负数:

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:

[+1]原= 0000 0001

[-1]原= 1000 0001

第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)

[1111 1111 , 0111 1111]

[-127 , 127]

负数的反码是在其原码的基础上,符号位不变,其余各个位取反

[-1] = [1000 0001]原= [1111 1110]反

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)

[-1] = [10000001]原= [11111110]反= [11111111]补

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值