[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 壹 - 基础介绍 | 1. 计算机内存

注意:本文经过原作者授权转译,转载请标明出处

原文地址:http://mrjester.hapisan.com/04_MC68/Sect01Part01/Index.html

条件允许建议阅读原文,网上非中文资料还是较多,当作锻炼英文岂不美哉
翻译若有不足之处欢迎批评指正

译文:

"哈?计算机?我听说它里面就是一坨0 和1... 我不知道它到底是怎么能让我看*片的,但不管怎么说它确实能做到,祝你们好运" ---- 道格 赫弗南,电视剧《后中之王》(The King Of Queens)

简介

作为一个又好又简单的开始,你可能需要知道计算机是怎样存储的

二进制

计算机用 (bits) 来存储数据,每一位可以是两种状态之一:

  • 0 - 擦除 (可以理解为断电,或在电路上称为低电平)
  • 1 - 设置 (可以理解为通电,或在电路上称为高电平)

通常是4 个为一组,比如 0100,4 个一组称为一个半字节 (nybble),通过排列组合共有16 种可能的半字节:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

记忆这些可能有些困难,所以为了更简单,每个位都对应着一个数字

二进制 十六进制
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

``正如你所见,左边一列是我们的16 个半字节,右边一列是同样能的16 个半字节,不过是以十六进制`的形式表示的

举个例子,二进制0011十六进制3是一样的,由于十六进制更加的短而且容易记忆,我们常常使用十六进制数字。可能某一天你看到1000就能想到对应的数字8,现在你只要记住他们是一样的就可以了

计数

大多数人日常生活中所使用的的数字如果从0 开始数的话大概是这样的:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27...

很明显你很擅长数数 (别说了,就连3 岁小孩都会),这种"正常"的数数方式称为十进制 (数到某位大于9 时,该位置0 并向高位进位)

而对于十六进制的数数,有些略微的不同:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
20, 21, 22, 23, 24, 25, 26, 27...

十六进制十进制一样可以数到9,但是它下一个数并不是10,而是A, B, C, D, E, F,然后才是10,这些9后面额外的6 个数字 (A~F) 对于十六进制数 的每一位都是这样的。比如,如果有个十六进制数: 9F,如果你把它 +1,结果并不是100,而是A0

二进制 十六进制 十进制
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 A 10
1011 B 11
1100 C 12
1101 D 13
1110 E 14
1111 F 15

上面这张表展示了二进制十六进制十进制之间的对应关系,比如二进制1100十六进制C以及十进制12表示的是同一个数,只是表示方式不同而已

在这系列教程中,我们将会更多的使用十六进制,以下将简称之为hex (hexadecimal)

数据长度

从现在起,你应该了解了半字节是什么 (4 个的组),不过我们还有其他的数据长度:

  • 如果你把两个半字节放到一起 (比如0100 1101),那么恭喜你获得了一个字节 (byte)
  • 如果你把两个字节放到一起 (比如0100 1101 1011 0000),那么恭喜你获得了一个 (word) (由于m68k 是16 的cpu,所以一个是16 ,即2 个字节,对于如今的民用cpu 如牙膏厂和农企在卖的那些,是64 cpu,对于它们来说一个是64 ,即8 个字节)
  • 如果你把两个放到一起 (比如0100 1101 1011 0000 1111 0001 0000 0110),那么恭喜你获得了一个长字 (long-word)

长度当然不仅限于这些,它们每翻倍就有一个名称,然而对于m68k 来说,长字已经是极限了,所以在此我们无需知道更长的叫什么。下面这张表或许能帮助理解:

长度 二进制 十六进制
半字节 0010 2
字节 0010 1100 2C
0010 1100 1111 0101 2C F5
长字 0010 1100 1111 0101 1001 1101 0111 0110 2C F5 9D 76

目录
下一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 壹 - 基础介绍 | 2. 内存存储

[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 壹 - 基础介绍 | 1. 计算机内存

上一篇:Android UI开发神兵利器之Android Action Bar Style Generator


下一篇:[转] 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID