7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Golangの「<<」「>>」について

Last updated at Posted at 2019-06-16

「A Tour of Go」というチュートリアルサイトを進めていくうちに、下記のように<<という知らない記述方法が出てきたので調べました。

basic-types.go
MaxInt uint64 = 1<<64 - 1

fmt.Printf("Value: %v", MaxInt)

※「A Tour of Go」のBasic types(11/17) から抜粋

<<>>の意味

<<>>は**「ビット演算子」**と呼ばれるものです。
**「ビット演算子」**を使うことで、数値を2進数で表記したときに<<は左へ、>>は右へとずらすことができます。

1<<64 - 1の計算結果

1<<64は、2進数として1を左に64ずらすことになります。
そして、1を左に64ずらした値を2進数から10進数に変換して-1を計算した結果、MaxInt18446744073709551615という値で出力されることになります。

Value: 18446744073709551615

参考にさせてもらった記事

Go言語、「>>」の意味。 - teratail

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?