File size: 700 Bytes
b0bfea8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * Reads as Big endian
 * @param dataArray {IndexedByteArray}
 * @param bytesAmount {number}
 * @returns {number}
 */
export function readBytesAsUintBigEndian(dataArray, bytesAmount)
{
    let out = 0;
    for (let i = 8 * (bytesAmount - 1); i >= 0; i -= 8)
    {
        out |= (dataArray[dataArray.currentIndex++] << i);
    }
    return out >>> 0;
}

/**
 * @param number {number}
 * @param bytesAmount {number}
 * @returns {number[]}
 */
export function writeBytesAsUintBigEndian(number, bytesAmount)
{
    const bytes = new Array(bytesAmount).fill(0);
    for (let i = bytesAmount - 1; i >= 0; i--)
    {
        bytes[i] = number & 0xFF;
        number >>= 8;
    }
    
    return bytes;
}