js arrayBuffer 字节序问题,小端法,大端法

原文博客

{
var buffer = new ArrayBuffer(2)
var bytes = new Uint16Array(buffer)
bytes[0] = (65 << 8) + 66
var blob = new Blob([buffer], {
type: 'text/plain'
})
var dataUri = window.URL.createObjectURL(blob)
open(dataUri) // BA 受系统的字节序影响,小端法
}
{
let buffer = new ArrayBuffer(2)
let view = new DataView(buffer)
let value = (65 << 8) + 66
view.setUint16(0, value, /*true*/) // 或许默认使用大端法,true设置为小端法
var blob = new Blob([buffer], {
type: 'text/plain'
})
var dataUri = window.URL.createObjectURL(blob)
open(dataUri) // AB DataView不用考虑平台字节序问题
}

假如内存地址是0x0-0x100,那么可以理解为地址低位<=>地址高位

存储模式

大端模式:数据高位在地址低位,数据低位在地址高位

小端模式:数据低位在地址低位,数据高位在地址高位

mov word ptr ds:[0x100], 0x1234

如果大端模式: 12 34

如果小端模式: 34 12

posted @   Ajanuw  阅读(5019)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示