- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找一种表示以下值范围的方法:0 - 18446744073709551615使用少于 8 个字节。
我试过想一些方法可以做到,但没有任何效果。理论上,例如:用一个字节来表示至少2个字节的位序列。然而,2 个字节有 65536 个不同的位组合,而一个字节只给我们一个值范围 0-255(256 种组合)。
最好的方法可能是更改位的含义。那会很好,但不能有任何精度损失。
我开始认为这根本不可能,尽管我想听听其他人对这个问题的看法和理论。
有两条规则:#1 不能有任何精度损失(即所有数字 0 - 18446744073709551615 必须是可表示的)。#2 从标准 64 位格式进行的转换永远不会导致需要超过 7 个字节(56 位)。
这些规则使这变得特别困难。
最佳答案
these rules make this particularly hard.
是的,很难证明是不可能的。
如果对于每个 可能的 64b 值,您可以无损地将 8 个字节压缩到少于 8 个字节,您可以继续重复该过程,直到您的 1TB 文件压缩到大约 7 个字节。
还有很多其他信息论论证为什么这是不可能的。例如鸽巢原则:n
位只有 2^n 个独特的位模式,因此任何小于 64 位的东西都不能对每个可能的 64 位值都有唯一的表示。
您可以使用的是 Huffman coding或类似:如果某些 64b 值比其他值更常见,则不太复杂的可变长度编码方案可以节省总字节数。 但要使用可变长度编码方案表示所有 64b 值,某些值的编码将占用超过 8 个字节。
存在更高级的熵编码方法,并用于现代视频编解码器。 (例如 x264 的 CABAC)。
有关更多理论,维基百科的无损压缩文章有一个 Limitations section .
另见:
关于c++ - 使用较少位的无符号 qword(64 位)的值范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41009595/
我正在使用Visual Studio 2012和Web Essential 2012,而Less生成的css与预期的不一样 //style.less .selector{ max-heig
我创建了一个基于LESS的小型混合器,用于以标准或视网膜格式输出图像。我无法理解将变量包装在与此相伴的一些CSS URL中-当我编译下面的代码时,我最终得到 url('http://sample.co
有人可以帮助我使用 CSS(less)吗,因为我似乎还不能理解它是如何工作的,我已经通过 node.js 安装了它,但现在如何将它链接到我的代码/网页? 由于某种原因,选择框没有输出到网页上,因为很可
我知道大多数算术运算只能使用按位运算符( Add two integers using only bitwise operators? 、 Multiplication of two integers
我需要在 less 中选择一个类的第 n 个子元素,而不是计算特定类的元素。例如,给定: 李 li class="skip_this" 李 李 李 我想让第 n 个 child 在计数时跳过 skip
当我单击一个按钮时,我进行了一个 ajax 调用,该调用将不同的 html 代码加载到一个 ID 为“main”的 div 中。我可以毫无问题地显示 html 代码,但我找不到将 css 和 js 代
我正在使用非常有限的 Shell 开发嵌入式 Linux。内置命令非常少。 我想检查 gpio 端口。这适用于以下内容。但它需要很多 CPU/IO - 电源!!所以我想像 sleep 一样得到短暂的休
我是一名优秀的程序员,十分优秀!