- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个可以保存/下载的十六进制文件。
结果应该是十六进制格式的文件,如下所示:
5350 4401 011a 000a 0900 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
00f8 ff1e ffff ffff b9ff c03b e6bf fbd8
bffb bccc 671c fdee eefd eefe ec6f 3800
0fc0 0003 c000 0180 0f00 1c00 003e 0003
c1e0 07ff f006 3e30 05dd d003 dde0 07be
f00f 6378 0edd b80e 1c38 0f1c 7877 9cf7
7bdd ef7d dddf 1edd bc0f 1c78 07c1 f003
dde0 01be c000 1c00 6f00 1013 4340 3055
6208 181b 4b48 385d 6a72 7678 7b7e 8087
898c 9098 0713 1444 4337 5766 0f1b 1c4c
4b3f 5f6e 7577 7a7d 7f86 888b 8e97 9f02
0610 1006 0205 0502 0610 1006 0205 0503
0204 0304 0503 0303 0202 8080 8080 8080
9090 8080 8080 8080 9090 8080 8080 8080
8080 8080 80
我已经尝试过这个解决方案:Javascript: how to convert hex data to binary and write it into a file但似乎被困在某个地方。
我的代码
var bytes = new Array(122, 13, 14, 9, 255); // integer values
var ab = new ArrayBuffer(bytes.length); //bytes is the array with the integer
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia[i] = bytes[i];
}
save_file(ia,"hexfile.bin");
save_file(data, filename)
{
var file = new Blob([data], {type: "octet/stream"});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
保存文件有效,但内容不是我所期望的。感谢任何帮助,谢谢!
最佳答案
The result should be a file in hex format, like this:
十六进制只是文件/缓冲区中内容的直观表示。内容本身存储为字节(十六进制范围 [0x00, 0xff],十进制范围 [0, 255] 等)。
现在您正在根据保存实际字节的数组的长度创建一个空数组:
var ab = new ArrayBuffer(bytes.length); // will be empty
var ia = new Uint8Array(ab); // therefor also empty
直接将其转换为:
var ia = new Uint8Array(bytes); // Array converted to typed array incl. content
现在使用正确的 mime 类型将其传递给 Blob 或 File 对象(并不是说它太重要,因为它与浏览器如何处理文件有关,而不是更改内容 - 未知的 mime 类型会处理方式如下):
var file = new Blob([ia], {type: "application/octet-stream"});
或者如果您想要一个文件名:
var file = new File([ia], "hexfile.bin", {type: "application/octet-stream"});
然后将其用作(或使用您已有的函数以获得更好的兼容性):
document.location = URL.createObjectURL(file);
示例(在十六进制编辑器中保存并打开结果,其中应包含 0x00 到 0x0f 范围内表示的字节):
var bytes = Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
var ia = new Uint8Array(bytes);
var file = new File([ia], "hexfile.bin", {type: "application/octet-stream"});
document.location = URL.createObjectURL(file);
关于javascript - 将数组转换为十六进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46467070/
我有一个消息 static int[] message = { 0x01, 0x10, 0x00, 0x01, // port addres 01 - 08
如何将十进制转换为以下格式的十六进制(至少两位,零填充,不带 0x 前缀)? 输入:255 输出:ff 输入:2 输出:02 我尝试了 hex(int)[2:] 但它似乎显示了第一个示例而不是第二个示
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Large numbers in Pascal (Delphi) 我正在尝试将 66 位值转换为十进制。 我注意到d
给定一个十进制数字列表,如何将每个数字转换为其等效的十六进制值,反之亦然? 例如: (convert2hex 255 64 64); ->(FF 40 40) (convert2dec FF 40 4
var color = Math.floor(Math.random() * 16777215).toString(16); var hex = Number.parseInt(col
我一直被教导 0-9 代表 0 到 9 的值,A、B、C、D、E、F 代表 10-15。 我看到这种格式 0x00000000,它不适合十六进制模式。有没有导游或导师可以解释一下? 我在谷歌上搜索了十
我目前正尝试像十六进制编辑器一样将文件读取为十六进制值。为了解释这个问题,让我们假设我有一个test.txt,里面有一个简单的“Hello world”。我正在尝试使用接近以下代码的程序以十六进制形式
我正在尝试获取元素背景颜色 $(document).ready(function(){ $.each('.log-widget',function(){ console.log($(t
0x40130020的十六进制值是 2.296883 的浮点值, 使用本网站 http://gregstoll.dyndns.org/~gregstoll/floattohex/ .这如何实现到 Lu
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,vis
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
谁能解释一下我们如何计算十六进制浮点常量的值。我在看书,发现0x0.3p10代表值192。 最佳答案 指数仍以十进制表示,但底数为二,尾数为十六进制。 所以 0.3P10 是 (3 × 16−1) ×
我正在尝试创建一个标签云,需要帮助来创建一个函数来计算应用于每个标签链接所需的颜色。 我有 3 个变量: 单个标签重要性(从 0.1 到 1) 最大(最重要)的标签颜色(十六进制代码,例如“fff00
大家好,我想发送尽可能短的字符串/值。如果我有以下内容 1)l23k43i221j44h55uui6n433bb4 2)124987359824369785493584379 3)kla^askdja
我知道你会写... background-color: #ff0000; ...如果你想要红色的东西。 你可以写... background-color: rgba(255, 0, 0, 0.5);
我有一些传递地理位置坐标的二进制数据流 - 纬度和经度。我需要找到它们编码的方法。 4adac812 = 74°26.2851' = 74.438085 2b6059f9 = 43°0.2763'
我想从 my_table 中选择 family,其中 family LIKE '%HEX(9D)' 家庭十六进制格式以 9D 十六进制结尾 我将excel文件转换为sqlite数据库但是 我的一些数据
我有一组二进制配置文件,每个文件有三个版本——每个文件的原始版本和两个不同修改的版本。我需要能够同时看到两个版本和原始版本之间的差异。 我需要的是一个二进制文件的三向差异工具。通过相当费力的谷歌搜索,
我正在尝试将(可变长度)十六进制字符串转换为带符号整数(我需要正值或负值)。 [Int16] [int 32]和[int64] 似乎可以在2,4+字节长的十六进制字符串上正常工作,但我在使用3个字节的
如何将十六进制的 unicode 写入 Facebook“您在想什么”框? 我尝试过写: \u00B9 "\u00B9" ¹ "¹" 到目前为止没有任何效果 (让我补充一下,我是在 M
我是一名优秀的程序员,十分优秀!