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;
};