9月11日-高级语言程序设计-课程内容(1)

9月11日第一次上课记录

主要内容:
1. 数制
2. 数据单位
3. 内存地址
4. 编码


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也有缺点,但日后有空再讨论)

猜你喜欢

转载自blog.csdn.net/weixin_43008400/article/details/82632357