9月11日第一次上课记录
主要内容:
- 数制
- 数据单位
- 内存地址
- 编码
1,数制
数制有两个基本要素:基数和权位。
多少进制基数就是多大,权位就是我们日常生活中说的多少位。
- 比如十进制的599,基数就是10,5的权位就是100,两个9的权位分别是10和1.
但严格来说,基数指的是用的数码的个数。 - 举个例子,十进制用了1,2,3,4,5,6,7,8,9,0这十个数,那么数码就是10,基数就是10。
- 类似的说,二进制用了0和1,数码便是2,基数也是2。
- 每个进制都有一个标识符,称为数制符号:
数制 | 数制符号 |
---|---|
二进制 | B |
八进制 | O |
十进制 | D |
十六进制 | H |
这些符号在转换过程中不带入计算,但是放在末尾方便识别数制。
- p计数法:是十六进制中的浮点数计数法,p之后是以2为底的阶码,例如0x1.b6p3的意思就是(1+11/16+6/256)*2^3
2,数制的转换
1,十进制转二进制
小数前部分:
·将十进制的数字除以2,记下余数。
·将商除以2,记下余数。
·重复此步骤直到商不能再除,将记下来的数全部倒转。
小数部分:
·将十进制的小数部分乘以2,若出现1则记下1,没有则记下0。
·取1之后的小数继续循环此过程,直到不再产生小数部分。
·按顺序写出记下的数字即可。
2,十进制转八进制
小数前部分:
·将十进制的数字除以8,记下余数。
·将商除以8,记下余数。
·重复此步骤直到商不能再除,将记下来的数全部倒转。
小数部分:
·将十进制的小数部分乘以8,若出现整数部分则记下,没有则记下0。
·取小数部分继续循环此过程,直到不再产生小数部分。
·按顺序写下出记下的数字即可。
3,十进制转十六进制
小数前部分:
·将十进制的数字除以16,记下余数,若余数大于9应做相应转换。
·将商除以16,记下余数。
·重复此步骤直到商不能再除,将所有的数全部倒转。
小数部分:
·将十进制的小数部分乘以16,若出现整数部分则记下,没有则记下0。
·去小数部分继续循环此过程,直到不再产生小数部分。
·按顺序写下记下的数字即可。
4,二进制转八进制
小数前部分:
·将数字从右到左分为三个一组,若数字不够在最左端补零。
·将分好的数字按照二进制转十进制的原则转换成数字。
·将所有数字拼凑在一起即可。
小数部分:
·将数字从左到右分为三个一组,若数字不够在最右端补零。
·将分好的数字按照二进制转十进制的原则转换成数字。
·将所有数字拼凑在一起即可。
5,二进制转十进制
小数前部分:
·将最左边的数字乘以2加第二个数字,并设为x。
·将x乘以2加第三个数字,代替x。
·重复过程直到所有数字算完。
小数部分:
·将最左边的数字乘以1/2记下。
·将第二个数字乘以1/4记下,以此类推,记下所有数字。
·重将数字加起来即可。
6,二进制转十六进制
小数前部分:
·将数字从右到左分为四个一组,若数字不够在最左端补零。
·将分好的数字按照二进制转十进制转换成数字
·将所有数字拼凑在一起即可。
小数部分:
·将数字从左到右分为四个一组,若数字不够在最右端补零。
·将分好的数字按照二进制转十进制转换成数字。
·将所有数字拼凑在一起即可。
注意:八进制和十六进制之间的转换需要借助十进制和十六进制
2,数据单位
位(bit)是计算机内存的最小访问单位。
1个字节(byte)等于8个字(bit)。【即是8位二进制】
电脑的最大内存和cpu的地址总线数目有关,即2的地址总线数目次方等于电脑的最大内存。
数据单位 | 转换关系 |
---|---|
位(bit) | / |
字节(Byte) | 8 b |
千(Kilo) | 1024 B;2^10 b |
兆(Mega) | 1024 KB;2^20 b |
吉(Gega) | 1024 MB;2^30 b |
太(Tera) | 1024GB;2^40 b |
艾(Exa) | 1024Tera;2^50 b |
往后还有ZB,YB,BB,NB,DB以此类推即可
主存容量即对应内存,存放在物理地址。
虚存容量即对应储存,存放在虚拟地址。
2的x次方等于容量大小,这个x是多少位,那么它就有多少位地址。
3,编码
ASCII码占七位二进制来存储字符,但是因为电脑内存能访问的最小单位是一个字节(即八位二进制),所以往往在前面补一位。
ASCII码基于特定位长,但是争取尽可能短的码长,所有排号由低到高。
符号 | ASCII码(十六进制/二进制) |
---|---|
回车 | 0DH/00001101 |
换行 | 0AH/00001010 |
空格 | 2OH/00100000 |
数字0~9 | 30H-39H/00110000-00111001 |
A,B,C | 41H,42H,43H/略 |
a,b,c | 61H,62H,63H/略 |
课外:ASCII码是针对英文设计的,它对其他语言并不友好,因此,有人便开始创建新的字符集。进过演化,最终产生了Unicode码。Unicode码的前128位和ASCII码相同,所以也可以将其看作ASCII码的拓展。Unicode的优点很明显,就是扩大了字符集,能装下更多东西,但与此同时,它的缺点也得以暴露,即占内存是ASCII码的两倍。因此,又出现了一些中间格式的字符集,即UTF。至此,外语输入的问题便画上了个句号。(虽然UTF也有缺点,但日后有空再讨论)