实训第四课-位运算与二、八、十、十六进制

星期一

第一台计算机:ENIAC,出生于1946年2月14日宾夕法尼亚大学;byte=8bit;

位运算符

  • 位运算是直接对二进制进行运算
  • << :符号位不动,右边补0
  • .>>:正数补0,负数补1(符号位不动)
  • .>>>(无符号右移):无论正负都补0
  • 位与&:只有1&1的时候是1
  • 位或|:只有0|0的时候是0,否则是1
  • 异或^:同则为0,不同则为1
  • 反码~:求反码

举个栗子:

6的二进制为:00000000 00000000 00000000 00000110

那么6<<2即为:00000000 00000000 00000000 00001100

那么6>>2即为:00000000 00000000 00000000 00000001

那么6>>>2即为:00000000 00000000 00000000 00000001

.
- 6的二进制为:10000000 00000000 00000000 00000110

那么- 6<<2即为:10000000 00000000 00000000 00001100最高符号位不变

那么- 6>>2即为:10000000 00000000 00000000 00000001最高符号位不变

那么- 6>>>2即为:00100000 00000000 00000000 00000001无符号移位就算是符号位也要动
.

进制

二进制

当前计算机系统基本使用的是二进制系统,数据在计算机中主要是以补码的形式储存,计算机中的二进制是一个非常微小的开关1表示开,0表示关(布尔值)

  • 缝二进一
  • 借一当二
  • 基数为二
    0(0)、1(1)、10(2)、11(3)、100(4)、101(5)、110(6)、111(7)、1000(8)、1001(9)、1011(10)、1111(11)、10000(12)
    .

八进制

一种以8为基数的[计数法](),采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)

.

十进制

  • 数学中通常使用十进制进行计算
  • 十进制计算可以用手指来数
  • 满十进一

1/2/3/4/5/6/7/8/9/10/11/12
.

十六进制

计算机中数据的一种表示方法,它是由0-9,A-F组成,字母不区分大小写,与十进制对应:0-9=0-9、A-F=10-15;N进制的数可以使用0~(N-1)的数来表示,超过9的用字母A-F

0(0) A(10)

1(1) B(11)

2(2) C(12)

3(3) D(13)

4(4) E(14)

5(5) F(15)

6(6) A1(16)

7(7)

8(8)

9(9)
.

进制转换

  • 二进制(B)八进制(O)十进制(D)十六进制(H)最后一位表达

    二进制转十进制B-D

    • 1100(从右往左):0乘2^0+ 0乘2^1+ 1乘22+1乘23=12

    十进制转二进制D-B

    • 54:54/2(%0) 27/2(%1) 13/2(%1) 6/2(%0) 3/2(%1) 1/2(%1)=011011反推得出二进制为:110110

    二进制转十六进制B-H

    • 11001011=(1x20+1x21+0x22+1x23)(0x20+0x21+1x22+1x23)=12-11=CB(H)
    • 101111=(0x20+1x21+0x22+0x23)(1x20+1x21+1x22+1x23)=15-2=2F(H)

    十六进制转二进制H-B

实训第四课-位运算与二、八、十、十六进制

  • A1={A=10(D)=1010} {1=0001(数字不足4位时往前补0) =10100001(B)
  • B9={B=11(D)=1011}{9=1001}=10111001(B)

十六进制转十进制H-D

  • A1:1x160+10(A)16^1=1+160=161(D)
  • B3:3x160+11x161=3+176=179(D)

十进制转十六进制D-H

  • 162:162/16=除数为10余数为2(10=A)=A2(H)
  • 176:176/16=除数为11余数为0(11=B)=B0(H)

二进制转八进制B-O

实训第四课-位运算与二、八、十、十六进制

  • 1110110=001(1) 110(6) 110(6) = 1 6 6 (O)

实训第四课-位运算与二、八、十、十六进制

上一篇:es6新特性


下一篇:RabbitMQ - 常用队列之Worker模式(一对多模式)