16 进制 hex 中 little-endian 转 big-endian

研究 exif 也不知道哪个脑瘫搞出了 little-endian 和 big-endian 两种编码……

jpeg 文件头读出的 hex 都是 big-endian ,只有 exif 部分,有些相机采用 little-endian ,常见于 canon 。

于是很蛋疼要把 little-endian 转成 big-endian 再进行处理。

经查询研究,转换 little-endian 到 big-endian 的方法是:

1. 把每对 hex 字符(例如 01 08 中 01 是一对 08 是一对)中每个字母互换( 01 换为 10 / 08 换为 80 )。

2. 把互换后的字符串反转(10 80 换为 08 01 )即可。

function le_be(str){

let tmp='';

while(str.length>2){tmp+=str.slice(-2);str=str.slice(0,-2);};

return tmp+str;

};
C
1