mirror of
https://github.com/gregtwallace/apc-p15-tool.git
synced 2025-01-22 08:14:08 +00:00
33 lines
763 B
Go
33 lines
763 B
Go
|
package main
|
||
|
|
||
|
// bitwiseComplimentOf returns the bitwise compliment of data
|
||
|
func bitwiseComplimentOf(data []byte) []byte {
|
||
|
compliment := []byte{}
|
||
|
|
||
|
for i := range data {
|
||
|
compliment = append(compliment, ^data[i])
|
||
|
}
|
||
|
|
||
|
return compliment
|
||
|
}
|
||
|
|
||
|
// isBitwiseCompliment returns true if data1 and data2 are bitwise compliments,
|
||
|
// otherwise it returns false
|
||
|
func isBitwiseCompliment(data1, data2 []byte) bool {
|
||
|
// if not same length, definitely not compliments
|
||
|
if len(data1) != len(data2) {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
// check each byte
|
||
|
for i := range data1 {
|
||
|
// if any byte is NOT the bitwise compliment of the matching byte in other data
|
||
|
// set, then the full set is not bitwise compliment and false
|
||
|
if data1[i] != ^data2[i] {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return true
|
||
|
}
|