计算机中的单位
常⽤计算机单位 bit(位):
1位能够存放⼀个0 或⼀个1
byte(字节)
:1字节 = 8 bitkb
:1kb = 1024bytemb
: 1mb =1024kbgb
:1GB = 1024MBtb
:1TB =1024GBpb
:1PB = 1024TBeb
:1EB = 1024PBzb
:1ZB = 1024EB
计算机的储存原理
- 在计算机中,任何⼀个⽂件在底层中都是以⼀⼤串的0或 1 的集合来保存的。
- 只有安装了对应⽂件的编码解码器,计算机才能够正确识别对应的⽂件。如没有播放 器,就⽆法执⾏视频或⾳频⽂件。编码解码器就可以将指定顺序的0和1的集合解析成视 频或⾳频。
- 对于⽂件的处理,就是计算机对该⽂件的底层存储的0和1进⾏处理。
- 1位能够存放⼀个0或1,⼀个字节能够存储8位。所以1个字节能够表示
256
种0和1不同 的组合,1个字节能够表示256个不同的⽂字,如果⽤来表示⾮负数,表示0~255
。两个字节 能够表示 2的16次⽅ 即65536
个⽂字
进制
概述
- ⽤于科学计数的语法或叫规则。平时⽣活中的数字计数⽅式就是⼗进制。其他的常⻅进 制有⼆进制、⼗六进制。
二进制
二进制(binary) 0,1, 满2进1,以
0b
或0B
开头。0000 0000 + 0000 0001 = 0000 0001 0000 0001 + 0000 0001 = 0000 0010 0000 0011 + 0000 0001 = 0000 0100 0000 0011 + 0000 0011 = 0000 0110
十进制
- 十进制(decimal) 0-9, 满10进1 ⽣活中使⽤的计数规则。
八进制
- 八进制(octal): 0-7,满8进1.以数字
0
开头表示。
十六进制
- 指数字的计数规则。0-9以及A~F来表示,逢16进1
- ⼀个⼗六进制⽤4个⼆进制来表示
- 为了⼗六进制和⼗进制的区分,那么,可以⽤
0x
或#
来表示⼗六进制的前缀,或H
来作 为⼗六进制的后缀。⽆论前缀或后缀效果都⼀样。计算机中⽤的是前缀,⽐如css⾥颜⾊ 中的#就是⼗六进制的前缀
进制之间相互的转换
二进制转为⼗进制
思想: 等于⼆进制每位数的2次⽅之和
流程:从⼆进制的最右边第⼀个数开始,将每⼀位的数字乘以2的位数-1次⽅对应的 和进⾏相加,相加的和就是对应的⼗进制
0000 0110 0 *2^0 +1*2^1 + 1*2^2 +0*2^3 +0*2^4+0*2^5+0*2^6+0*2^7= 2+4 = 6 2. 0001 0101 1*2^0 +1*2^2 +1*2^4 = 1 +4 + 16= 21
十进制转为二进制
思想:除2取余,倒序排列
流程:将⼗进制依次进⾏ 除2运算 ,直到最后余数为0为⽌,将每次除法的余数倒序 排列,就是⼆进制
二进制转十六进制
从⼆进制最右边开始,4个⼆进制表示⼀个⼗六进制
0001 1000 0x18 1010 0100 0xa4
八进制转二进制
一个八进制数,为3个二进制数
0357 000 011 101 111
原码、补码、反码
原码
概念:原码是⼈们为了⽤⼆进制来表示正负数,将⼆进制的最⾼位来表示符号位的⼀种 ⼆进制表示⽅式(逻辑上的),为0则表示正数,为1表示负数。
0000 0001 表示+1 1000 0011 表示-3 1000 0001表示-1
反码
概念: ⼀个数字的⼆进制反码是其原码的基础之上进⾏操作
语法:正数的反码跟原码⼀样,负数的反码是除了符号位以外,其他位取反。
1和-1 的反码 1: 0000 0001(反、原) -1:1111 1110(反)
反码能够解决数值的正确问题,但是符号位不对,引⼊了最终的计算机使⽤⽅案—补 码
补码
概念:是⼀种数字的⼆进制表示⽅式,也是最终计算机采⽤的⽅案。即计算机中是⽤⼆ 进制的补码来进⾏处理的。
语法:正数的补码跟原码⼀样。负数的补码是在其反码的基础之上加1
1 和-1 : 1: 0000 0001(补,反,原) -1: 1111 1111(补)
综上所述,最终只有补码的⽅式能够完美解决减法的问题, 所以计算机中⼆进制的处理⽅ 式就是⽤的补码的⽅式 。
位运算
概述
- 是针对⼆进制来进⾏运算的运算符
位运算符
^
异或运算 同为0,异为1,按位异或&
与运算~
取反运算 1 为0 0为 1|
或运算>>>
无符号右移 最高位无论是1 还是0 空缺都补 0<<
逻辑左移 所有的⼆进制向左移动指定的位数。⽆论正负,移动之后,低位⼀律⽤0进⾏补充>>
逻辑右移 所有的⼆进制向右移动指定的位数。⾼位如果是正数,那么以0作为补充,负数以1作为 补充