相关疑难解决方法(0)

3
推荐指数
1
解决办法
6682
查看次数

当有足够的字母来使用 base 32 时,为什么我们要使用这么多十六进制?

你可以有 0-255 的十六进制,存储在 2 个字符中,所以它可以压缩数据,并用于各种事物,包括颜色、IP 和 MAC 地址。

我的问题是为什么他们停在 16 位(或者为什么最常用)?字母表中有足够的 32 位字母,这将在相同的空间量内提供 0-65536 的范围,可能允许 280 万亿种颜色,而只有 1600 万种。如果让字母区分大小写并添加两个符号,则可以使用 64 位,这两个字符最多可以表示 43 亿个值。


我认为这会起作用的一些情况示例:

IPv4 快用完了。我知道 v6 正在推出,但它很长,很难记住。取192.168.0.1地址,也可以存为C0.A8.0.1。使用 64 位十六进制但仍保持最多 8 个字符,您可以拥有 280 万亿个组合而不是 40 亿个组合,我们不会有这个问题。

如上所述,它还提供了更大范围的颜色。RAW 照片格式以每个颜色通道 32 位而不是 8 位记录,缺点是文件大小会大幅增加。如果 RGB 值以十六进制存储,则在增加颜色范围时文件的大小应该没有变化,因为它仍会以每像素 6 位的方式存储,但基数更高。相反,它被记录为每像素 96 位的数值,这是一个非常不必要的增加 1600%,使照片超过 20MB(根据在线计算器,32 位颜色的 4K RAW 视频可能高达 2.5GB每秒)。


这部分实际上与问题无关,但我不久前编写了一个脚本,可以将数字转换为不同的基值,范围从二进制到基数 88(之后用完符号),这表明它很容易实现来实施类似的事情。例如,这里是 66000 的输出。
Base 2: 11111111111110000
Base 16: 101D0
Base 32: 20EG
Base 64: G7G如果有人感兴趣,
代码在这里,但它仍然有一些错误,我只尝试过玛雅之内。有点离题,但我也刚刚注意到,正常的十六进制似乎比原始数字少了 20% 左右,而基数 88 几乎减少了 …

hexadecimal

2
推荐指数
1
解决办法
7322
查看次数