精解十六进制转换

2020-04-21  本文已影响0人  KangSmit的算法那些事儿

16转10

16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

例:2AF5换算成10进制:

竖式计算

第0位: 5 * 16^0 = 5

第1位: F * 16^1 = 240

第2位: A * 16^2= 2560

第3位: 2 * 16^3 = 8192


10997

直接计算就是:

5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997

16进制到二进制

由于在二进制的表示方法中,每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换,即得所求:

例:2AF5换算成2进制:

第0位: (5)16 = (0101) 2

第1位: (F)16 = (1111) 2

第2位: (A) 16 = (1010) 2

第3位: (2) 16 = (0010) 2 -------------------------------------

得:(2AF5)16=(0010.1010.1111.0101)2

0xffffffff是多少?

0xffffffff表示的是一个十六进制数

1.将其转换为十进制数
0xffffffff=16x107+16x106+...+16x10^0=4294967295

2.将其转换为二进制数
十六进制转换为二进制就是直接把每位转换成二进制就可以了
f(15)变成二进制:1111,则
0xffffffff = 1111 1111 1111 1111 1111 1111 1111 1111 (8个F的二进制形式, 一个F占4个字节 )
即32位数都是1的二进制数

0x代表16进制,后面是数字,十进制是4294967295

引用文献1
引用文献2

上一篇下一篇

猜你喜欢

热点阅读