试图复制python的'打开“祝辞L"在JavaScript中使用typedarray
Trying to replicate Python's struct.unpack ">L" in JavaScript with TypedArrays
我正在尝试在JavaScript中重现以下Python代码。
import struct
val = struct.unpack(">L", "MACS")[0]
val
现在是1296122707
(与0x4d414353
相同)。对htk1
进行相同的尝试,得到1752460081
,与0x68746b31
相同。
我试图把这个带到JavaScript中,所以我开始学习,并在Python: classmethod int.from_bytes()
上看到了这个文档。
所以上面的内容与
相同int.from_bytes(b"MACS", "big")
然而,我无法将其移植到JavaScript。我如何开始这样做,或者它已经存在?
这是我的尝试:
function unpackL(fourCharCode) {
var buf = new ArrayBuffer(8);
var view = new DataView(buf);
view.setUint8(0, String.charCodeAt(fourCharCode[0]), true);
view.setUint8(2, String.charCodeAt(fourCharCode[1]), true);
view.setUint8(4, String.charCodeAt(fourCharCode[2]), true);
view.setUint8(6, String.charCodeAt(fourCharCode[3]), true);
return new Uint32Array(buf);
}
然而unpackL('htk1')
给了我Uint32Array [ 7602280, 3211371 ]
。
下面是这样一个函数(如果字符串长度错误则返回undefined):
function stringToUnsignedInt(string) {
if (string.length !== 4) {
return undefined;
}
return (string.charCodeAt(0) << 24) +
(string.charCodeAt(1) << 16) +
(string.charCodeAt(2) << 8) +
string.charCodeAt(3);
}
console.log(stringToUnsignedInt("MACS") === 1296122707); // true
console.log(stringToUnsignedInt("htk1") === 1752460081); // true
相关文章:
- 使用javascript"这个“;用于jquery选择器
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- “;javascript:“"#&”;,以及“;javascript:false"在iframe.sr
- 避免使用神秘的javascript"脚本错误”;使用cdn
- 需要帮助修复我的javascript"对于循环“;播放音频播放列表
- 使用javascript"随机引用“;脚本,但跨越两个独立的元素
- a href="上的javascript对象对象;javascript:"呼叫
- 淘汰高级声明javascript"用“-喜欢
- 我的javascript"幻灯片放映”;不起作用
- Javascript:"!="操作员不'工作不正常
- 提交到带有“;动作:javascript"使用javascript
- 创建一个javascript"hasValue”;util方法
- 如何获取javascript"链接旋转器”;从身体到部门的功能
- Rails/javascript:"参数键太多”-什么'这是规范表单数据的好方法
- 谷歌标签管理器:如何使用“;自定义Javascript"在“;自定义HTML标记&”;
- JavaScript: " !!"是什么意思?
- & lt;脚本语言=“JavaScript"祝辞添加
- href表达式<a href="javascript:"></a>做
- 制作一个javascript"函数对象";继承他人
- 为什么Javascript"类“;实现使用同名的函数声明覆盖类名