进制转行
二进制0—1(逢2进1)
八进制0—7(逢八进一)
十进制0—9(逢10进1)
十六进制的0—F(10、11、12、1、14、15分别用A、B、C、D、E、F来表示(逢16进1)
识别16进制是否是jpg图片
JPG/JPEG格式的图片都是以十六进制的’FF D8’作为文件开始,'FF D9’作为文件结束标志.FF等为16进制数据,占文件的1 byte.
js代码实现
// 16进制转图片
// value:16进制字符串(无空格)
export function imgRun(value){
let pos = 0;
let len = value.length;
if(len %2 != 0) {
return null;
}
len /= 2;
const hex = [];
for(let i=0; i<len; i++) {
const s = value.substr(pos, 2);
const v = parseInt(s, 16);
hex.push(v);
pos += 2;
}
let binary = '';
const bytes = new Uint8Array( hex );
const len2 = bytes.byteLength;
for (let i = 0; i < len2; i++) {
binary += String.fromCharCode(bytes[i] );
}
return 'data:image/png;base64,' + window.btoa( binary );
}