位运算(1)——初识位运算

  前段时间数电课学了些进制转换,还有与或非等逻辑运算,如今再来看看位运算,倒轻松了不少。
  很早就想写些非总结性博客了,奈何还是太懒。也也不知怎的突然又来了兴致,赶忙写下这篇博客。
  废话不多说,今天准备总结总结关于位运算的知识。

什么是位运算

  程序中的所有数在计算机内存中都是以二进制的形式存储的,即0、1两种状态,而位运算就是直接对整数在内存中的二进制位进行操作。

进制转换

  1. 十进制转二进制
    方法:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。例如:
    在这里插入图片描述
  2. 二进制转十进制
    方法:把二进制数按权展开、相加即得十进制数。例如:
    在这里插入图片描述
  3. 二进制与八进制间的转换
    在这里插入图片描述
  4. 二进制与十六进制之间的转换
    在这里插入图片描述

运算

  1. 与 &
      该运算通常用于二进制的取位操作。例如一个数and 1 的结果就是取二进制的最末位,由此可以判断一个整数的奇偶,二进制数的最末位为0表示该数为偶数,最末位为1表示该数为奇数。
      相同位的两个数字都为1,则为1;若有一个不为1,则为0。
      例:1111 1100 & 0011 1111 =>0011 1100
  2. 或 |
      一个数or 1的结果就是把二进制数的最末位强行变成1,如果需要将其变成0,只需在or1后再减去1就ok。
      相同位只要有一个为1即为1。
      例如:1011 0010 | 0101 1110 => 1111 1110
  3. 异或^
      其逆运算是它本身,即两次异或同一个数最后结果不变。
      相同位不同则为1,相同位相同位则为0。
      例:0001 0100 ^ 0000 0101 => 0001 0001
      下面是在网上所见的相关规律讲解图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 非(取反) ~
      将0和1全部取反。
      例如:~0000 1111 => 1111 0000
  5. 按位左移 << 按位右移 >>
       将二进制数进行左移或右移操作。
  6. 无符号右移 >>>
      忽略符号位,空位都以0补齐。
      没有 <<<

  以上为本次总结,后续博客将根据我所看的视频,总结位运算的几种题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值