0x3f
十六进制
和你理解二进制的思路几乎一样,二进制不明白的出门左拐(再见。)。
十六进制,顾名思义,就是一位上的数字大于等于$16$的时候会进位。
可是$16$个数字多出去的那$6$个是从哪里来的呢?不知道的出门右拐去上英语课吧!
这$16$个数字分别是:
0 1 2 3 4 5 6 7 8 9 A B C D E F
那别的不用多说,还想不出来的请出门直行上小学数学课!
含义
先来回忆一下二进制转十进制是怎么做的……
举例:$(1011)_{2}$
答案:$
2^{3} + 2^{1} + 2^{0}
= 8 + 2 + 1
= 11
$
二进制时$2$是底数, 十六进制是$16$.
所以,0x3f
$=$ $63$。
为什么要是63(0x3f)?
请各位回忆一下,C++的char
的最大值是多少?
答案很明显,是$127$。
众所周知,$63 \times 2 < 127$。
所以,0x3f
满足两个条件:
1.很大
2.×2不会溢出
这就是为什么我们在程序里经常见到的原因了。
$\tiny{下期预报:各小类型最大值}$