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

注意:本文经过原作者授权转译,转载请标明出处
emmmmm... 的markdown 功能有点简陋,SEO 不友好。。迁移到博客园了。。。

原文地址: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. 计算机内存)