質問するログイン新規登録

回答編集履歴

2

Playgroundの参照を追加

2015/10/25 11:00

投稿

argius
argius

スコア9398

answer CHANGED
@@ -8,6 +8,8 @@
8
8
  2進数で表すと、こうなります。
9
9
  ※ビットが100だと大きすぎるので、それぞれマイナス50しています。
10
10
 
11
+ このコードを Playground で実行 →[http://play.golang.org/p/k6u-24vjtG](http://play.golang.org/p/k6u-24vjtG)
12
+
11
13
  ```lang-go
12
14
  package main
13
15
 

1

例をプログラムの実行結果に差し替え

2015/10/25 11:00

投稿

argius
argius

スコア9398

answer CHANGED
@@ -3,16 +3,37 @@
3
3
 
4
4
  `1 << 100`してから`Big >> 99`すると、`1 << 1`したのと同じになりますので、 `2`になります。
5
5
 
6
+
7
+
6
8
  2進数で表すと、こうなります。
9
+ ※ビットが100だと大きすぎるので、それぞれマイナス50しています。
7
10
 
11
+ ```lang-go
12
+ package main
13
+
14
+ import "fmt"
15
+
16
+ const (
17
+ One int64 = 1
18
+ Big = One << 50
19
+ Small = Big >> 49
20
+ )
21
+
22
+ func main() {
23
+ fmt.Printf("One =%051b\n", One)
24
+ fmt.Printf("Big =%051b\n", Big)
25
+ fmt.Printf("Small=%051b\n", Small)
26
+ }
8
27
  ```
28
+
9
- 1: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
29
+ 実行結果
10
- Big: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11
- Small: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
12
30
  ```
31
+ One =000000000000000000000000000000000000000000000000001
32
+ Big =100000000000000000000000000000000000000000000000000
33
+ Small=000000000000000000000000000000000000000000000000010
34
+ ```
13
35
 
14
36
 
15
-
16
37
  参考リンク:
17
38
  Goプログラミング言語仕様 - golang.jp
18
39
  [http://golang.jp/go_spec](http://golang.jp/go_spec)