mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-07-31 23:16:09 +02:00
A lot of code tidy up
This commit is contained in:
parent
fd86293dbe
commit
9e9dc9af89
16 changed files with 144 additions and 140 deletions
64
core/mbf.js
64
core/mbf.js
|
@ -9,51 +9,51 @@ const { Errors } = require('./enig_error');
|
|||
//
|
||||
|
||||
// Number to 32bit MBF
|
||||
numToMbf32 = (v) => {
|
||||
const numToMbf32 = (v) => {
|
||||
const mbf = Buffer.alloc(4);
|
||||
|
||||
if (0 === v) {
|
||||
return mbf;
|
||||
}
|
||||
if (0 === v) {
|
||||
return mbf;
|
||||
}
|
||||
|
||||
const ieee = Buffer.alloc(4);
|
||||
ieee.writeFloatLE(v, 0);
|
||||
const ieee = Buffer.alloc(4);
|
||||
ieee.writeFloatLE(v, 0);
|
||||
|
||||
const sign = ieee[3] & 0x80;
|
||||
let exp = (ieee[3] << 1) | (ieee[2] >> 7);
|
||||
const sign = ieee[3] & 0x80;
|
||||
let exp = (ieee[3] << 1) | (ieee[2] >> 7);
|
||||
|
||||
if (exp === 0xfe) {
|
||||
throw Errors.Invalid(`${v} cannot be converted to mbf`);
|
||||
}
|
||||
throw Errors.Invalid(`${v} cannot be converted to mbf`);
|
||||
}
|
||||
|
||||
exp += 2;
|
||||
exp += 2;
|
||||
|
||||
mbf[3] = exp;
|
||||
mbf[2] = sign | (ieee[2] & 0x7f);
|
||||
mbf[1] = ieee[1];
|
||||
mbf[0] = ieee[0];
|
||||
mbf[2] = sign | (ieee[2] & 0x7f);
|
||||
mbf[1] = ieee[1];
|
||||
mbf[0] = ieee[0];
|
||||
|
||||
return mbf;
|
||||
}
|
||||
return mbf;
|
||||
};
|
||||
|
||||
mbf32ToNum = (mbf) => {
|
||||
if (0 === mbf[3]) {
|
||||
return 0.0;
|
||||
}
|
||||
const mbf32ToNum = (mbf) => {
|
||||
if (0 === mbf[3]) {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
const ieee = Buffer.alloc(4);
|
||||
const sign = mbf[2] & 0x80;
|
||||
const exp = mbf[3] - 2;
|
||||
const ieee = Buffer.alloc(4);
|
||||
const sign = mbf[2] & 0x80;
|
||||
const exp = mbf[3] - 2;
|
||||
|
||||
ieee[3] = sign | (exp >> 1);
|
||||
ieee[2] = (exp << 7) | (mbf[2] & 0x7f);
|
||||
ieee[1] = mbf[1];
|
||||
ieee[0] = mbf[0];
|
||||
ieee[3] = sign | (exp >> 1);
|
||||
ieee[2] = (exp << 7) | (mbf[2] & 0x7f);
|
||||
ieee[1] = mbf[1];
|
||||
ieee[0] = mbf[0];
|
||||
|
||||
return ieee.readFloatLE(0);
|
||||
}
|
||||
return ieee.readFloatLE(0);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
numToMbf32,
|
||||
mbf32ToNum,
|
||||
}
|
||||
numToMbf32,
|
||||
mbf32ToNum,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue