位运算与两值互换的几种方法

位运算与两值互换的几种方法

一、位运算

&按位与 |按位或 ^按位异或 ~按位取反
<<按位左位移 >>按位右位移 >>>按位右位移(无符号)

eg:

3&5=~6 =

算法:
1.将3和5转换成二进制表示形式
2.竖着按照对应的位置进行&|^计算
3.将计算后的二进制结果转化为十进制


将二进制每三个合并为一个-------》八进制

将二进制每四个合并为一个--------》十六进制

知识补充
   原码 反码 补码 二进制表示数字
                  6                          |                    -6
原码:00000000 00000000 00000000 00000110     |    10000000 00000000 00000000 00000110
反码:00000000 00000000 00000000 00000110     |    11111111 11111111 11111111 11111001 符号不动其余取反
补码:00000000 00000000 00000000 00000110     |    11111111 11111111 11111111 11111010 反码后加1
计算机中不管是整数还是负数 储存的形式都是以补码形式来储存
注意 反码是一种表示形式 取反是一个计算过程(每一个位置都取反)

  6<<2 = 24
00000000 00000000 00000000 00000110
000000 00000000 00000000 0000011000

  6>>1=3
00000000 00000000 00000000 00000110
000000000 00000000 00000000 0000011

  -6>>>1=3
11111111 11111111 11111111 11111010
?11111111 11111111 11111111 1111101   //问号处填什么,下面给出答案

说明:
>>保留11
>>>不保留全填0

二、两值互换的几种方法

a与b值互换的三种方法

1.新变量 第三方

   int c;
    c=a;
    a=b;
    b=c;

2.求和

  a=a+b;
  b=a-b;
  a=a-b;

3.异或

  a=a^b  // eg:  a=1;b=2  a^b---->   001 ---->011=3
              //                       010
  b=a^b
  a=a^b;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值