Go 言語(以下 Golang)で、1 バイトのデータを左シフトさせたのち、右側末尾にビット・ローテーションさせたい。いわゆる、ひとつの循環シフト。 普通にビットシフトすると溢れたビットは消えてしまうのです。 func main() { v := uint8(0b11110000) w := v << 1 // 1 ビットの左シフト fmt.Printf("%08b\n", v) fmt.Printf("%08b\n", w) } // Output: // 11110000 // 11100000