美文网首页
进制、位运算

进制、位运算

作者: 有趣的恶魔QAQ | 来源:发表于2019-01-02 18:44 被阅读0次

知识点整理

在计算机中,整数可以通过二进制、八进制、十进制、十六进制来表示

一.进制

  • a.十进制
    基数:0-9
    进位:满十进一
    位权:123(10) = 1102 + 2101 + 310*0 = 123

  • b.二进制
    基数:0、1
    进位:逢二进一
    位权:101(2) = 120 + 021 + 12*2 = 5

  • c.八进制
    基数:0-7
    进位:满八进一
    位权:123(8) = 180 + 281 + 38*2 = 83

  • d.十六进制
    基数:数字(0-9),字母(a-f),字母可小写可大写
    进位:逢16进一
    位权:123(16) = 1162 + 2161 + 316*0 = 291

程序中如何表示不同进制的数

1.十进制

num = 110 # 程序中十进制直接写
print(num)

2.二进制 (0b+二进制数)

num = 0b1010001
print(num)
print(bin(123)) # 获取123的二进制编码,打印的结果为字符串

3.八进制 (0o+八进制数)

num = 0o1233456
print(num)
print(oct(123)) # 获取123的八进制编码,打印结果为字符串

4.十六进制 (0x+十六进制数)

num = 0x4fa6
print(num)
print(hex(123)) # 获取123的十六进制编码,打印结果为字符串

计算机存储数据存的都是数字数据,而且存的是数字的补码

计算机对数据进行运算的时候是使用补码进行运算,将数据从计算机中读出来看到的是原码

  • a.原码
    符号位 + 真值(二进制值)
    说明:
    符号位:最高位是0表示正数,用1表示负数
    真值:去掉正负,数字对应的二进制值
    例如:

100的原码: 01100100
-100的原码; 11100100

  • b.反码:正数的反码就是原码
    负数的反码,原码的符号位不变,其余位数取反(1变为0,0变为1)

-100的反码:10011011

  • c.补码:正数的补码就是原码
    负数的补码就是反码+1(逢二进一)

-100的补码:10011100

二、位运算

运算符:&(按位与)、|(按位或)、~(按位取反)、^(按位异或)、>>(右移)、<<(左移)
  • a.按位与运算
    数字1 & 数字2 --> 相同位置两个都为1则为1,有一个为0则为0
    例如:1011(补)& 0110(补)--> 0010(补)

应用:判断一个数的奇偶性(如果这个数的二进制的最低位是1就是奇数,否则为偶数)

num % 2 == 0 (num是偶数)传统写法
num & 1 == 0  (num是偶数)
num & 1 == 1 (num是奇数)
  • b.按位或运算
    数字1 | 数字2 --> 有1结果就为1,两个都为0才为0

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

  • c.按位取反
    ~数字:将数字上的每一位取反
    将一个数字取反两次,值则为本身

~1 = 0
~0 = 1

  • d.按位异或
    数字1 ^ 数字2 :相同为0,不同为1
    应用:判断两个数是否相等

  • e.左移、右移

数字1 << N:数字1左移N位,相当于数字12*N
数字1 >> N:数字1右移N位,相当于数字1//2**N

应用:快速乘2、除以2的多少次方

相关文章

  • Java学习笔记-第一天

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

  • 10/17

    今天老师讲了进制转换和位运算。进制转换就是二进制、八进制、十进制、十六进制的相互转化,位运算包括按位与,按位或,异...

  • 运算符

    算术运算符 赋值运算符 比较运算符 逻辑运算符 位(bit)运算 二进制: 八进制: 十六进制 进制运算有反码 补...

  • 进制、位运算

    一、进制 在计算机编程中,整数可以通过十进制、二进制、八进制和十六进制来表示 1.十进制 a.基数:0,1,2,3...

  • 进制、位运算

    知识点整理 在计算机中,整数可以通过二进制、八进制、十进制、十六进制来表示 一.进制 a.十进制基数:0-9进位:...

  • 12.21

    今天星期四,今天是牛老师给我们讲课,主要讲了位的运算,包括位运算的运算符,二进制十进制十六进制的转换,位运算的应用...

  • Java运算符(位运算符)

    位运算符 位运算指的是可以按照二进制,八进制,十六进制进行数据处理。基本上考虑最多的还是二进制。在位运算之中,可以...

  • 【算法训练营学习笔记-Week07】位运算的妙用

    位运算 如何从十进制转换为二进制 位运算符号 含义运算符示例左移<<0011 ->0110右移>>0110 -> ...

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

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

  • Java--位运算符

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

网友评论

      本文标题:进制、位运算

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