[转译][马基 杰斯特(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

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

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
``` 正如你所见,左边一列是我们的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

二进制十六进制十进制
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
1010A10
1011B11
1100C12
1101D13
1110E14
1111F15

上面这张表展示了二进制,十六进制和十进制之间的对应关系,比如二进制的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. 内存存储

posted @ 2020-02-10 11:01  草帽过客  阅读(1532)  评论(0)    收藏  举报