# 0x01 前言
今天写文章的时候,突然想起用十六进制当做标题序号,于是再记录一下。
# 0x02 十六进制与十进制转换
首先,在十六进制中 1~16 数字代表有:0,1,2,3,4,56,7,8,9,A (10),B (11),C (12),D (13),E (14),F (15)
前位为 0 可以被忽略,例如:
0x10x011
0x0A0xA10
只有前一位有大于 1 的情况才会作计算,如:
0x1A261*16+10
后位为 0 则会使前一位成为进位数:
0xA00==101616+0+0=2560
对于进位来说,当前处于哪位,计算时就需要自身数值乘对应数量 N 的 次方
同理,经常见到的颜色值:0xFFFF 类似
0xFFFF15161616+151616+1516+1565535
这中最大值的情况,计算其实可以简化一下:
# 0x03 二进制与十进制转换
对于二进制转十进制,常用的还是数数。
数二进制中有多少个 1 ,这个 1 所占用的位置 N 作为 2 (N-1) 次方,然后累加起来。
例如:
例如 4 个字节 容量有多大?
我们知道:
1 个字节有 8 位 0b11111111255
2 个字节有 16 位 0b1111111111111111256256-1=65535
3 个字节有 24 位 0b111111111111111111111111256256256-1=16777215
4 个字节有 32 位 0b11111111111111111111111111111111256256256256-1=4294967295
一张 ARGB32 的图片格式就是:
每个通道 8 位 ==255 表示一个颜色,也就是我们常见的 (255,255,255,255) 颜色组合,也即是『原图』。
# 0x04 二进制与十六进制转换
其实很简单...:一位十六进制视为四位二进制
0b1111-->0xf-->15
0x99-->0b10011001
0x88-->0b10001000