进制转换
十六进制
十六进制在计算世界中特别是在数字电子领域应用广泛。 它的基数为16,因为它使用16个符号来表示任何数字,并且每个数字都有一个相关的乘法因子,该乘数是16的幂。它基本上是一个“紧凑”编号系统,其中与要求的数字相比,只需很少的数字就可以表示足够大的数字 到十进制系统。 十六进制数可以很容易地转换为二进制数,反之亦然。 十六进制系统中的数字是0到9以及A,B,C,D,E,F。 十六进制系统中的每个数字都可以使用4个二进制数字表示。 数字的顺序以2的幂递增。我们将详细了解十六进制,但首先让我们了解十进制和二进制编号系统及其从二进制到十进制的转换。
十进制
十进制:这是我们日常生活中使用的编号系统。 十进制数字中的每个数字都有一个相关联的“权重”。 它的基数为10,因为它使用10个“符号”或着说用数字(0、1、2、3、4、5、6、7、8、9)的组合来表示任何数字。
考虑一个十进制数字2734:默认情况下,最右端的数字称为LSD或最低有效数字。 个位是“ 4”。 最左边上的数字被称为MSD或最高有效数字,即“ 2” 。最高有效字数之所以最重要,是因为该位置的数字变化使数字值发生了很大的变化。 同样的论点适用于LSD。 如您所知,单位位置的乘数为1,十位数的乘数为10,百位数的乘数为100等等。类似于此,我们在二进制系统中也对每个数字都有乘数。
二进制
二进制:它仅使用2个符号(称为位)“ 0”和“ 1”来表示任何数字。 在这种计数系统上,计算机很容易理解,因此尽管非常易于理解,但对于嵌入式编程而言最重要。 通过使用将二进制转换为十六进制的示例,可以最好地理解二进制系统。
让我们举个例子,尝试理解二进制到十进制的转换:
一个二进制数字:10011,需要将其转换为十进制。 二进制数的每一位都带有一个特定的乘法因子,或者说“权重”或“顺序”。 默认情况下,最右边的位是开始或第0位,而最左边的位是最后一位。 因此,从右边开始的第1位开始乘以2^0,第二位乘以2的1次方,以此类推。
1011转换成10进制
二进制转换十六进制也大致于此相同,回想一下,每个十六进制数字都由“精确”的4位表示。 因此,在这种情况下,“ 4”是非常重要的数字。 一组4位称为半字节,而一组8位称为字节。 因此,在十六进制中,我们基本上处理半字节。
首先让我们看一下十进制,十六进制,二进制转换的表格
从简单的观察中,我们可以得出以下事实:若要将任何二进制数转换为十六进制,我们需要首先对每个组包含4位的位进行分组,然后从上表中用其等效的十六进制直接替换该组。 我们从LSB开始分组,即从右开始。同样,任何十六进制“符号”或“数字”的二进制表示形式都仅关联了4个“顺序”或“权重”或“乘法因子”。 它们是2的3次方,2的2次方,2的1次方和2的0次方或只是8-4-2-1。
例如:1010101001110,我们可以将其分组为10-1010-0100-1110。 请注意,分组到4从右侧开始。 现在,最左侧的组只有2位,因此我们可以附加零以使情况更简单。
因此,我们得到:0010-1010-0100-1110,现在我们用其十六进制表示替换每个组。
因此1010101001110的十六进制为2A4E.
将十六进制转换为二进制:更加简单。 只需将每个十六进制数字替换为其等效的二进制数即可。
例如,B39F1A
将每个十六进制数字替换为其等效的二进制数,我们得到:1011 0011 1001 1111 0001 1010.