[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"featured-note":3},{"id":4,"title":5,"body":6,"description":237,"extension":238,"kind":239,"meta":240,"navigation":241,"path":242,"publishedAt":243,"relatedTools":244,"seo":246,"sources":247,"stem":250,"updatedAt":243,"verifiedAt":243,"__hash__":251},"notes\u002Fnotes\u002Fbyte-order-verification.md","字节序不是“看起来像”：一次 16\u002F32 位解释验证",{"type":7,"value":8,"toc":227},"minimark",[9,18,22,25,33,36,170,173,176,179,182,185,194,197,213,216],[10,11,12,13,17],"p",{},"这篇记录验证的是字节工作台 ",[14,15,16],"strong",{},"v0.1 的底层 16\u002F32 位解释规则","；当前页面已改为输入 HEX 后即时列出多种候选格式和偏移。下列 53 项历史样例仍检查共用的字节序与浮点边界，不代表覆盖新页面全部格式。它不尝试从数据外观猜协议，也不替代设备资料。",[19,20,21],"h2",{"id":21},"验证方法",[10,23,24],{},"先独立写出 53 组合成参考用例，再让实际 TypeScript 核心逐项执行。参考集合包含 31 组有效输入和 22 组错误输入；自动化还补充了原始 UTF-16 错误位置、4096 长度边界、排列选项和特殊浮点分类。",[10,26,27,28,32],{},"实现会先把输入解析为确定的字节，再按所选的 AB、BA、ABCD、BADC、CDAB 或 DCBA 排列重排一次，最后通过 ",[29,30,31],"code",{},"DataView"," 按显式大端读取。这样不会依赖运行测试的电脑本机采用哪种字节序。",[19,34,35],{"id":35},"几个固定检查点",[37,38,39,59],"table",{},[40,41,42],"thead",{},[43,44,45,49,52,56],"tr",{},[46,47,48],"th",{},"原始字节",[46,50,51],{},"类型 \u002F 排列",[46,53,55],{"align":54},"right","预期结果",[46,57,58],{},"检查目的",[60,61,62,81,98,116,133,150],"tbody",{},[43,63,64,70,73,78],{},[65,66,67],"td",{},[29,68,69],{},"00 01",[65,71,72],{},"uint16 \u002F AB",[65,74,75],{"align":54},[29,76,77],{},"1",[65,79,80],{},"保持两字节顺序",[43,82,83,87,90,95],{},[65,84,85],{},[29,86,69],{},[65,88,89],{},"uint16 \u002F BA",[65,91,92],{"align":54},[29,93,94],{},"256",[65,96,97],{},"交换两字节后再读取",[43,99,100,105,108,113],{},[65,101,102],{},[29,103,104],{},"FF FF",[65,106,107],{},"int16 \u002F AB",[65,109,110],{"align":54},[29,111,112],{},"-1",[65,114,115],{},"有符号二进制补码",[43,117,118,123,126,130],{},[65,119,120],{},[29,121,122],{},"3F 80 00 00",[65,124,125],{},"float32 \u002F ABCD",[65,127,128],{"align":54},[29,129,77],{},[65,131,132],{},"有限单精度浮点",[43,134,135,140,142,147],{},[65,136,137],{},[29,138,139],{},"80 00 00 00",[65,141,125],{},[65,143,144],{"align":54},[29,145,146],{},"-0",[65,148,149],{},"负零不能与普通零混为一谈",[43,151,152,157,159,164],{},[65,153,154],{},[29,155,156],{},"7F 80 00 00",[65,158,125],{},[65,160,161],{"align":54},[29,162,163],{},"+Infinity",[65,165,166,167],{},"特殊值需要明示而非 JSON ",[29,168,169],{},"null",[10,171,172],{},"错误用例也属于结果的一部分。历史规则中，空输入、奇数个 HEX 数字、非法字符、空逗号项、字节数不匹配以及类型\u002F排列不匹配均返回明确错误。当前即时分析不再要求用户选择类型或排列，仍不会删除字符、补零或截断后继续计算。",[19,174,175],{"id":175},"实际结果",[10,177,178],{},"2026-09-27 在 Node 26.10.0、pnpm 12.7.0 环境中，53 个独立字节参考用例全部通过实际核心函数。随后包含两个工具和公共交互的完整单元测试共 134 项通过，静态生成与 Chromium 桌面\u002F移动回归也通过。",[10,180,181],{},"这里的“通过”只描述上述代码状态和自动化环境。它不代表已经在某个真实设备、协议或全部手机浏览器中验证，也不代表生产部署已经完成。",[19,183,184],{"id":184},"如何使用这个结论",[10,186,187,188,193],{},"如果设备资料明确写的是某种字节排列，可以用",[189,190,192],"a",{"href":191},"\u002Ftools\u002Fbyte-workbench\u002F","字节工作台","在相应偏移查看该排列并复制分析记录。所有排列只是候选解释，不是在替用户判断“哪一种更可能正确”。",[19,195,196],{"id":196},"限制",[198,199,200,204,207,210],"ul",{},[201,202,203],"li",{},"本文的 53 项历史参考样例只覆盖 v0.1 的 16\u002F32 位整数和 float32；当前页面另支持 8 位、BCD16、ASCII\u002FBOOL 与有限长度滑动窗口。两者都不含 float64、64 位整数或反向编码。",[201,205,206],{},"NaN、无穷和负零是位模式解释结果，不应直接当成设备状态诊断。",[201,208,209],{},"合成样例不来自公司、客户、兼职项目或现场数据。",[201,211,212],{},"Playwright 的手机设备模拟不等于真实 Android、iOS Safari 或微信内置浏览器验证。",[19,214,215],{"id":215},"参考依据",[198,217,218],{},[201,219,220,226],{},[189,221,225],{"href":222,"rel":223},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FDataView\u002FgetFloat32",[224],"nofollow","MDN：DataView.getFloat32()","，复核日期 2026-09-27。用于确认按指定字节序从缓冲区读取 32 位浮点数的 API 语义。",{"title":228,"searchDepth":229,"depth":229,"links":230},"",2,[231,232,233,234,235,236],{"id":21,"depth":229,"text":21},{"id":35,"depth":229,"text":35},{"id":175,"depth":229,"text":175},{"id":184,"depth":229,"text":184},{"id":196,"depth":229,"text":196},{"id":215,"depth":229,"text":215},"用合成位模式、独立预期值和错误样例验证字节工作台的排列、整数与 float32 解释边界。","md","experiment",{},true,"\u002Fnotes\u002Fbyte-order-verification","2026-09-27",[245],"byte-workbench",{"title":5,"description":237},[248],{"title":249,"url":222,"accessedAt":243},"MDN · DataView.getFloat32()","notes\u002Fbyte-order-verification","z1VW7ghPh8pHiacjTKln1dE5UwzLF0h7F2YX2MTh-CM",1790487494989]