美文网首页
二进制表示&&位运算

二进制表示&&位运算

作者: 咕叽咕叽_6130 | 来源:发表于2019-03-23 21:39 被阅读0次

原码、反码、补码

1.原码:

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

2.反码:

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

3.补码:

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

位运算

1.按位与(&)

参加运算的两个数,换算为二进制(0、1)后,进行与运算。只有当相应位上的数都为1是,该位才取1,否则该位才取0.
全1取1

2.按位或(|)

参加运算的两个数,换算为二进制(0、1)后,进行或运算。只要相应位上存在1,那么该位就取1,均不为1,即为0。
全0取0

3.按位异或(^)

参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当相应位上的数字不相同时,该为才取1,若相同,即为0。
相同取0,不同取1

4.取反(~)

参加运算的两个数,换算为二进制(0、1)后,进行取反运算。每个位上都取相反值,1变成0,0变成1。

5.左移(<<)

参加运算的两个数,换算为二进制(0、1)后,进行左移运算,用来将一个数各二进制位全部向左移动若干位。
eg:对10左移2位(就相当于在右边加2个0):
0000 0000 0000 1010


0000 0000 0010 1000
所以:10 << 2 = 0000 0000 0010 1000 = 40
注意,观察可以发现,左移一位的结果就是原值乘2,左移两位的结果就是原值乘4。

6.右移(>>)

参加运算的两个数,换算为二进制(0、1)后,进行右移运算,用来将一个数各二进制位全部向右移动若干位。
eg:对10右移2位(就相当于在左边加2个0):
0000 0000 0000 1010
--------------------
0000 0000 0000 0010
所以:10 >> 2 = 0000 0000 0000 0010 = 2
注意,观察可以发现,右移一位的结果就是原值除2,左移两位的结果就是原值除4,注意哦,除了以后没有小数位的,都是取整。

相关文章

  • LeetCode191——位1的个数(位运算)

    位运算基础 位运算基于整数的二进制表示进行运算。由于计算机内部就是以二进制来存储数据,因此位运算会很快。基本的位运...

  • 如何用二进制表示整数与位运算

    续上期《如何操作数据》本文和大家一起学习如何使用二进制表示整数与位运算 整数的二进制表示与位运算 在《如何操作数据...

  • 位运算

    位运算运算符有哪些 用法 例如有一个数是a,二进制表示为10010110,有一个MASK,二进制表示为000000...

  • 位运算 - 二进制中1的个数

    位运算是把数字用二进制表示之后,对每一位上0或者1的运算。 位运算总共只有5种运算:与、或、异或、左移和右移。 与...

  • Java学习笔记-第一天

    位运算符 位运算是直接对二进制进行运算. 异或运算(^):相同二进制位进行运算,结果是0.不相同二进制位运算结果是...

  • 二进制表示&&位运算

    原码、反码、补码 1.原码: 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8...

  • ^、&、>>、>>>运算

    ^运算 ^ 表示二进制按位异或运算,对应位置不同则为1,相同的为0如:45^17含义如下 int num = ...

  • 15_二进制中1的个数

    要求:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:把1的二进制数每次往左移一位, 位运算...

  • 剑指offer(Java版)day03:二进制中1的个数|数值的

    1二进制中1的个数 【题目】输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 【考察点】位运算 【...

  • Java--位运算符

      位运算指的是进行二进制位的运算,常用的位运算符如下所示。 位运算符   说明~       取反&     ...

网友评论

      本文标题:二进制表示&&位运算

      本文链接:https://www.haomeiwen.com/subject/acsevqtx.html