====== CRC ======
This writes a CRC to an OrderedCollection.
| crc ws |
crc := 2636827734.
ws := WriteStream on: (OrderedCollection new).
0 to: -3 by: -1 do: [:idx | ws nextPut: ((crc bitShift: (idx * 8)) bitAnd: 255)].
ws -> OrderedCollection(86 204 42 157 )
This reads it back.
|crc coll |
coll := #(86 204 42 157) asOrderedCollection.
crc := coll at: 4.
crc := crc bitShift: 8.
crc := crc bitOr: (coll at: 3).
crc :=crc bitShift: 8.
crc := crc bitOr: (coll at: 2).
crc := crc bitShift: 8.
crc := crc bitOr: (coll at: 1).
crc -> 2636827734
A simpler version
|crc coll |
coll := #(86 204 42 157) asOrderedCollection.
crc := coll at: 4.
coll size - 1 to: 1 by: -1 do: [:index|
crc := crc bitShift: 8.
crc := crc bitOr: (coll at: index).].
crc -> 2636827734