二进制和十六进制:数字格式

作者:Digi-Key工程师 Kaleb Kohlhase

本帖将介绍基数及其格式。这其中涉及的内容不多,主要说明不同的数字格式、使用情况,以及使用原因。了解不同数字格式的结构对许多应用而言相当重要。

基数

首先我要解释的是术语“基数”。这表明不同的数字表示法中可使用多少位数字。例如,我们的常规十进制记数制中使用了10位数字(也称为基数10)。我们日常生活中使用的任何数字都会包含0到9中的任意数字。理论上存在无数种数字格式,因为可以使用基数2一直到基数无限(只要你愿意的话),但这是不实际的(或不可能的),因此出于方便考虑,我们实际上只使用了几种格式。另外,你也可以使用以基数1来表示数字,但这是非常不切实际的,因为如果表示较高的十进制数字的话,那么所用的数字位数就会十分荒谬。

B^{n-1}: n=0...+\infty

任何基数B的n减1次幂,其中n在0到正无穷之间。
N代表以指定的基数格式化的数字所显示的数字位数。要表示采用基数1的三位数字(例如100)你需要除了1^0之外的其他99位数字(任何数字的0次幂均等于1,0除外),用以补足缺失的数字,以使总和达到100(这也说明了为什么指数后面带有负1)。基数B的n次幂的可用数字之数值总和相加等于最终的等效十进制数。1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111为基数1的等效100的数值,但这并不是非常有用的格式。


具有不同基数的所有数字格式均具有上述结构(逗号仅用于分隔“位”)。我更偏向于从左到右进行计算,而指数递增的顺序是从右到左。以下是如何计算等效十进制数的总和的公式:

V_{place}*B_{base}^{n}+V_{place}*B_{base}^{n-1}+...+V_{place}*B_{base}^{2}+V_{place}*B_{base}^{1}+V_{place}*B_{base}^{0}

“V位”表示特定基数B允许的可用数字内的值(十进制允许10位数字、二进制允许2位、十六进制允许16位)。用该值乘以各“位”上的基数的指数次幂。

Decimal=10^{n}; Binary=2^{n};Hexadecimal=16^{n}

在下一篇帖子中,我们将研究如何在十进制和其他两种格式之间进行转换。


英文原文链接:Binary and Hexadecimal : Number Format