grayToBinary static method
- LogicValue gray
Converts a Gray code value represented by gray
to binary.
Given a gray
value, this function return LogicValue
representing the equivalent binary representation.
For each bit in the gray
input, starting from the least significant bit
(index 0), the function calculates the corresponding binary bit based
on XOR operation with the previous binary bit.
Return LogicValue representing the binary representation.
Implementation
static LogicValue grayToBinary(LogicValue gray) {
final reverseGray = gray.reversed;
final grayList = reverseGray.toList();
var previousBit = LogicValue.zero;
final binaryList = grayList.map((currentBit) {
final binaryBit = currentBit ^ previousBit;
previousBit = binaryBit;
return binaryBit;
}).toList();
return binaryList.swizzle();
}