beson
Version:
Yet an another binary representation of json format
88 lines (74 loc) • 2.25 kB
JavaScript
/**
* Author: JCloudYu
* Create: 2018/09/24
**/
import {BinaryInt} from "src/types/_core-types.esm.js";
import {___SET_BINARY_BUFFER} from "src/helper.esm.js";
//@export=UInt512
class UInt512 extends BinaryInt {
constructor(value=0) {
super();
___SET_BINARY_BUFFER.call(this, new ArrayBuffer(64));
this._ta = new Uint32Array(this._ab);
this.__set_value(value);
}
static from(value=0) {
return new UInt512(value);
}
static get ZERO() {
return new UInt512();
}
static get MAX() {
return new UInt512([
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
]);
}
}
class Int512 extends BinaryInt {
constructor(value=0){
super();
___SET_BINARY_BUFFER.call(this, new ArrayBuffer(64));
this._ta = new Uint32Array(this._ab);
this.__set_value(value);
}
get isSignedInt() { return true; }
static from(value=0) {
return new Int512(value);
}
static get ZERO() {
return new Int512();
}
static get MAX() {
return new Int512([
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
]);
}
static get MIN() {
return new Int512([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
]);
}
}
//@endexport
export {UInt512, Int512};