UNPKG

1.65 kBJavaScriptView Raw
1let binary = {}
2
3binary.octetToBinary = (octet) => {
4 const binaryOctet = Number(octet).toString(2)
5
6 let zeros = ''
7 if (binaryOctet.length < 8) {
8 const leadingZeros = 8 - binaryOctet.length
9 for (let i = 0; i < leadingZeros; i++) {
10 zeros += '0'
11 }
12 }
13
14 return zeros + binaryOctet
15}
16
17binary.octetToDecimal = (octet) => {
18 let octetInDecimal = 0
19
20 let invalidOctet = false
21 for (let i = 0; i < octet.length; i++) {
22 if (octet.charAt(i) !== '0' && octet.charAt(i) !== '1') invalidOctet = true
23 }
24
25 if (invalidOctet) {
26 throw new Error('The octet given is invalid since it includes numbers other then 0 or 1.')
27 }
28
29 if (octet.length !== 8) {
30 throw new Error('An octet must be 8 Bits long.')
31 }
32
33 if (octet.charAt(0) === '1') octetInDecimal += 128
34 if (octet.charAt(1) === '1') octetInDecimal += 64
35 if (octet.charAt(2) === '1') octetInDecimal += 32
36 if (octet.charAt(3) === '1') octetInDecimal += 16
37
38 if (octet.charAt(4) === '1') octetInDecimal += 8
39 if (octet.charAt(5) === '1') octetInDecimal += 4
40 if (octet.charAt(6) === '1') octetInDecimal += 2
41 if (octet.charAt(7) === '1') octetInDecimal += 1
42
43 return octetInDecimal
44}
45
46binary.logicalAnd = (octetOne, octetTwo) => {
47 return octetOne & octetTwo
48}
49
50binary.splitIntoOctets = (bits) => {
51 const regex = Array.from(bits.matchAll(/.{1,8}/gm))
52 let octetArray = []
53
54 for (let i = 0; i < regex.length; i++) {
55 octetArray.push(regex[i][0])
56 }
57
58 return octetArray
59}
60
61export default binary
\No newline at end of file