She*_*man 5 javascript compression algorithm binary encoding
我在javascript中寻找一种无损压缩算法(例如LZW或Huffman或其他任何东西),该算法可以接收并返回原始的二进制数据。
“二进制数据”是指字节序列,它可以采用以下任何一种形式:
现在很明显,到处都有大量的javascript实现,可用于多种算法。但是我发现的所有东西似乎都在做疯狂的事情,例如:
返回的数组还包含大于255的值(那么现在的压缩率是多少?如何以字节为单位表示它,或者如何将其保存到文件中?)
弄乱字符串中的字符编码,从/转换为unicode或url / html实体或诸如此类(这是BINARY,此处不应用字符编码!)
返回其他似乎不适合二进制存储的表示形式(即无法转换为字节序列)
谁会知道适合我的二进制恋物癖的良好javascript压缩(+ decompression)实现?
Das*_*arp -3
首先创建一个闭包来保存二进制或十六进制或十进制标志
function ASearch() { }
ASearch.Flag = {
Front_Wheel_Drive: 0xF, Rear_Wheel_Drive: 0xF0, Four_Wheel_Drive: 0xF00,
Auto: 0xFF, Manual: 0xFF00,
Gas: 0xF, Diesel: 0xF0, Hybrid: 0xF00, Electrical: 0xF000,
Two: 1, Three: 2, Four: 4, Five: 8, Six: 16, Eight: 32, Ten: 64, Twelve: 128
};
Run Code Online (Sandbox Code Playgroud)
然后像这样设置
SetFlag = (function (e) {
e = e.srcElement;
$("#" + e.parentNode.name).val(e.checked ?
$("#" + e.parentNode.name).val() | ASearch.Flag[e.id] :
$("#" + e.parentNode.name).val() ^ ASearch.Flag[e.id]);
});
Run Code Online (Sandbox Code Playgroud)
这是 32 位整数打包数据的示例
有四个变量...我已经将它们用于 18 个标志..这是快速且超级有效的
例如...
int i = 0; //binary = 0000 0000 0000 0000
i = i | 255; //binary = 0000 0000 1111 1111
i = i ^ 255; //binary = 0000 0000 0000 0000
i = i | 0xFF00; //binary = 1111 1111 0000 0000
i = i | 255; //binary = 1111 1111 1111 1111
i = i ^ 0xFF00; //binary = 0000 0000 1111 1111
Run Code Online (Sandbox Code Playgroud)