@@ -17,23 +17,66 @@ let binary = Binary(bytes: [0xDE, 0xAD]) // 1101 1110 1010 1101
1717``` 
1818
1919``` swift 
20- //  Bits
21- binary.bit (0 ) as  Int       //  1
22- binary.bit (1 ) as  Int       //  1
23- binary.bit (2 ) as  Bit       //  .Zero
24- binary.bit (3 ) as  Bit       //  .One
25- binary.bits (0 , 16 )        //  57005 
20+ //  Read first 4 bits, bit by bit
21+ var  binary =  Binary (bytes : [0xDE , 0xAD ])
22+ print (binary)
2623
27- //  Bytes
28- binary.byte (0 ) as  Int      //  222
29- binary.bytes (0 , 2 ) as  Int  //  57005
24+ let  bit0 =  binary.next (bits : 1 )
25+ print (bit0) //  1
26+ 
27+ let  bit1 =  binary.next (bits : 1 )
28+ print (bit1) //  1
29+ 
30+ let  bit2 =  binary.next (bits : 1 )
31+ print (bit2) //  0
32+ 
33+ let  bit3 =  binary.next (bits : 1 )
34+ print (bit3) //  1
35+ ``` 
36+ 
37+ ``` swift 
38+ //  Read next 4 bits, 2 x 2 bits
39+ let  bits4And5 =  binary.next (bits : 2 )
40+ print (bits4And5) //  3
41+ 
42+ let  bits6And7 =  binary.next (bits : 2 )
43+ print (bits6And7) //  2
44+ ``` 
45+ 
46+ ``` swift 
47+ //  Set reading offset (cursor) back to starting position
48+ binary.readingOffset  =  0 
3049``` 
3150
32- ## Todos  
51+ ``` swift 
52+ //  Read first byte
53+ let  nextTwoBytes =  binary.next (bytes : 2 )
54+ print (nextTwoBytes) //  [222, 173]
55+ ``` 
3356
34- -  [ ]  Endianness flag
35- -  [ ]  Tests
36- -  [ ]  Documentation
57+ ``` swift 
58+ //  Read bit by position
59+ let  bit5 =  binary.bit (5 )
60+ print (bit5) //  1
61+ ``` 
62+ 
63+ ``` swift 
64+ //  Read byte by position
65+ let  byte1 =  binary.byte (1 )
66+ print (byte1) //  173
67+ ``` 
68+ 
69+ ``` swift 
70+ //  Read first 16 bits as Integer
71+ let  first16Bits =  binary.bits (0 , 16 )        //  57005
72+ print (first16Bits)
73+ ``` 
74+ 
75+ ``` swift 
76+ //  Read first two bytes as Integer
77+ let  firstTwoBytes =  binary.bytes (0 , 2 ) as  Int 
78+ print (firstTwoBytes) //  57005
79+ ``` 
3780
3881## License  
3982
0 commit comments