bit演算

LNDにこんなソースが出てきた。

format |= 0x1  

このformatはbyte型なんだけれど、面食らった。byte型っていうのはuint8(= 8bit)のことで、|はor演算子を示す。

formatはpubkeyCompressed byte = 0x2なので、要するに2。

だから、0010 | 0001 = 0011。

最初から3を代入すれば良くないか?!もうhexだのbigintだのbyteだのbufferだの混乱しまくりで辛い。