根据维基百科的说法:
在数学和计算中,十六进制(也称十六进制)是一个用16为基数表示数字的位置系统。与用10个符号表示数字的常用方法不同,它使用16个不同的符号,最常见的符号是“0”--“9”来表示零到九的值,“A”-“F”(或者“a”-“f”)表示10到15的值。
使用其中的两个符号,你可以从中得到256个数字。人数最多的是FF。
如果我想代表一个更大的数字,我可以使用基数36或ZZ吗?如果这是可能的,为什么以前没有用过?
更多信息:
我所处的场景是,我用唯一的if索引条目,我希望能够平均表示大约1000-10000个条目,如果可以的话,我想使用两个符号。
白色表示为#FFFFFF。那是全红色(FF)全蓝色(FF)全绿色(FF)。这比使用不同的基本编码更容易阅读吗?
发布于 2019-11-09 23:25:54
十六进制编码的目标不是以较少的数字编码较大的数字,而是在一个字节中的数字和位之间有一个简单的映射:两个十六进制数字对应于一个字节。1十六进制数字是4位,所以是半字节(我用的是八进制意义上的字节)。
当然,您可以使用一个基数为36的数字(0..9A.Z)以较少的数字编码较大的数字。有了两个这样的数字,您就可以编码1296位置(36到2位)。使用3位数字,您可以编码46656个值。
您甚至可以决定使用区分大小写的数字,并将数字编码为基数62。使用两个这样的数字,您可以编码3844值。三位数是238 328个值。
使用每一个可打印的ascii字符,您可以使用基数92。对于10000条条目,您仍然需要3位数。
但是,如果你使用普通的十进制数,但编码为二进制,你只需要2个字节。
发布于 2019-11-10 00:59:40
您的主要误解是关于BaseX格式的目的。
正如其他人指出的那样,BaseX (X是一个很高的数字)并不会增加信息密度。通过改变位的表示,不能在固有的二进制机器上获得更高的密度。如果您有很多位,您可以应用压缩,但这将节省一些空间,这取决于您手头的数据类型,而代价是处理速度。
最常用的BaseX格式是Base64,其目的是以可打印字符的形式传输二进制数据,特别是在电子邮件中。这不是编码数据的最密集的方式,但它将很好地适应电子邮件消息的正文部分,而不会用意外控制代码干扰邮件处理器,因为所有的东西都是文本。
发布于 2019-11-09 23:11:17
它不是在今天的计算机上完成的,因为仅仅在不同的(明显的)数字基础上工作并不能提高信息密度或处理性能。
首先,计算机不使用十进制或十六进制--它们是适合人类消费的格式,即打印、输入/输出。在内部和物理上,计算机使用二进制数字来存储、表示和操作值,无论是用十进制还是十六进制、固定还是浮点数。为了存储更大的数字,我们使用更多的位!
因此,在基础36中打印的数字不改变其内部表示为二进制数字使用逻辑在今天的一些处理技术。
一些NAND闪存驱动器使用刚果解放运动,它允许在一个逻辑单元中编码2位。这确实提高了物理密度,允许在相同的体积中存储更多的内存。然而,还有一个折衷之处,即这些存储速度可能更慢,寿命也会更长。
在某种意义上,答案与信息论有关,它是对物理系统中编码的研究。
在过去的日子里,真空管系统直接使用10基座--每根管可以存储10个不同的数值,对应于十进制数字。
然而,有几种简化形式帮助推动了小型化,其中有两种:(1)使用二进制而不是多值逻辑器件,(2)使用单个逻辑门(如NAND门),而不是试图在单个技术过程中合并和,或,而不是逻辑门。
https://softwareengineering.stackexchange.com/questions/400854
复制相似问题