我想学好十六进制。有人想简单说一下吗?我想学习编程必须走的路。这种语言熟悉十进制。因为我自学的。

十六进制数字系统(英文名称:十六进制数字系统)是计算机中数据的表示法。它不同于我们日常生活中的表现。它由0-9、A-F组成,字母不区分大小写。与10的对应关系是:0-9对应0-9;A-F对应10-15;n元数可以用从0到(n-1)的数来表示,超过9的用字母A-F来表示..

16中的20表示为10,即:2×16?+0×16?=32

10中的32表示为16,即:20。

十进制数的整数部分除以16,小数部分四舍五入为16,就可以转换成十六进制数。

比如十进制的0.1转换成八进制的0.0631463146314631。就是0.1乘以8=0.8,小于1不四舍五入,0.8乘以8=6.4,取整数6,0.4乘以8=3.2,取整数3,依次计算。

在编程中,我们通常使用10基数。毕竟C/C++是一门高级语言。

例如:

int a = 100,b = 99

但由于数据是在计算机中表示的,最终以二进制的形式存在,所以有时候用二进制可以更直观地解决问题。但是二进制数太长了。例如,int类型占用4个字节和32位。例如,用int类型的二进制数表示的100将是:

0000

0000

0000

0000

0110

0100

没有人会喜欢在这么长的数字上思考或操作。因此,C,C++

没有办法直接用代码写二进制数。使用16十六进制或八进制可以解决这个问题。因为,十进制越大,数字的表达长度就越短。但是,为什么是16还是八进制,而

没别的,比如9或者20?2、8和16分别是1、3和4的2次方。这使得在三个系统之间直接转换成为可能。八进制或16十进制缩短

引入了二进制数,但保持了二进制数的表达特征。你可以在下面关于二进制转换的课程中找到。

十六进制到十进制的十进制转换

16的基数是每16到1,但我们只有从0到9的十个数,所以我们用字母A、B、C、D、E、F分别代表10、11和18。字母不区分大小写。

十六进制数第0位的权重是16的0次方,第1位的权重是16的1,第二位的权重是16的2次方...

因此,在第n个位置(其中n从0开始),如果是一个数β (β大于等于0,β小于等于15,即f),则大小表示为β×16的n次方。

假设有一个十六进制数2AF5。

直接计算是:

5×160+f×161+a×162+2×163 = 10997[1]

也可以垂直表达:

0: 5×160=5

位1: f× 16 1 = 240。

第2名:A×162=2560。

第3名:2×163=8192。

-

10997

从这里可以看出,将所有碱基转换成10碱基的关键在于它们的权重不同。

假设有人问你,为什么十进制数是1234 1234?你可以给他这样一个公式:

1234 = 1×103+2×102+3×101+4×100

十六进制转换

首先我们来看一个二进制数:1111。这是什么?

你可能要这么算:1×20+1×21+1×22+1×23 = 1×1×2+65438。

但是,由于1111只有4位数字,我们必须直接记住每一位数字的权重,从高到低依次记录:8,4,2,1。即最高有效位的权重是23=8,其次是22=4,21=2,20=1。

记住8421,对于任何一个4位二进制数,我们都可以快速计算出它对应的10二进制值。

下面列出了四位二进制数xxxx的所有可能值(中间部分跳过)。

只有4位十进制值的二进制数的快速计算方法

1111 = 8+4+2+1 = 15 = F

1110 = 8+4+2+0 = 14 = E

1101 = 8+4+0+1 = 13 = D

1100 = 8+4+0+0 = 12 = C

1011 = 8+0+2+1 = 11 = B

1010 = 8+0+2+0 = 10 = A

1001 = 8 + 0 + 0 + 1 =9 =9

……

0001 = 0 + 0 + 0 + 1 = 1= 1

0000 = 0 + 0 + 0 + 0 = 0= 0

二进制数转换成十六进制,即以4位为单位转换成十六进制。

如(上面一行是二进制数,下面一行是对应的十六进制数):

1111 1101 , 1010 0101 , 1001 1011

联邦开发署,A 5,9 B

反过来,当我们看到FD时,如何快速转换成二进制数?

首先转换f:

当我们看到F的时候,我们需要知道它是15(可能你对A ~ F这五个数不熟悉),然后15怎么才能用8421取整呢?应该是8+4+2+1,所以四位数都是1:1111。

然后转换d

看到D就知道是13,13。8421怎么加?应该是:8+4+1,即:1101。

所以FD转换成二进制数,就是:1111111。

因为十六进制转换成二进制是相当直接的,所以当我们需要将一个十进制数转换成二进制数时,也可以先转换成16,然后再转换成二进制。

比如十进制数1234转换成二进制数,如果想一直除以2直接得到二进制数,就需要多次计算。所以我们可以除以16得到16:

股息计算过程商余数

1234 1234/16 77 2

77 77/16 4 13 (D)

4 4/16 0 4

结果16十六进制为:4D2。

那么我们可以直接写出4D2的二进制形式:

0100

1101

0010

其中,映射关系为:

0100 - 4

1101 - D

0010 - 2

同样,如果一个二进制数很长,我们需要把它转换成10,我们也可以把这个二进制数转换成16,然后再转换成10。

下面是一个int类型的二进制数的示例:

01101101

11100101

10101111

00011011

我们把它转换成四位一组的16:6 D5 af 1B。

十进制到十六进制

用余数定理分解,比如把487710转换成十六进制:

487710÷16=30481....14(东)

30481÷16=1905....1

1905÷16=119....1

119÷16=7....七

7÷16=0....七

这使得它为487710(10)= 7711e(16)。