星期一
第一台计算机: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)