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