回答編集履歴

2

文言修正

2022/05/09 19:21

投稿

KOZ6.0
KOZ6.0

スコア2628

test CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
  int (System.Int32) は 32bit の符号付整数だからです。
4
4
 
5
- 2進数で表すと
5
+ 0を2進数で表すと
6
6
 
7
- 0000 0000 0000 0000 0000 0000 0000 0000(10進では 0)
7
+ 0000 0000 0000 0000 0000 0000 0000 0000
8
8
 
9
9
  これをビット反転すると
10
10
 
11
- 1111 1111 1111 1111 1111 1111 1111 1111(10進では -1)
11
+ 1111 1111 1111 1111 1111 1111 1111 1111
12
+
13
+ となり、10進では -1 になります。
12
14
 
13
15
  ■ 1と表示する方法
14
16
 

1

エラーチェックをコンストラクタに

2022/05/09 19:19

投稿

KOZ6.0
KOZ6.0

スコア2628

test CHANGED
@@ -28,7 +28,14 @@
28
28
  int value = 0;
29
29
 
30
30
  private BIT(int value) {
31
+ switch (value) {
32
+ case 0:
33
+ case 1:
31
- this.value = value;
34
+ this.value = value;
35
+ break;
36
+ default:
37
+ throw new ArgumentOutOfRangeException();
38
+ }
32
39
  }
33
40
 
34
41
  public override bool Equals(object obj) {
@@ -44,12 +51,7 @@
44
51
  }
45
52
 
46
53
  public static implicit operator BIT(int value) {
47
- switch(value) {
48
- case 0:
49
- case 1:
50
- return new BIT(value);
54
+ return new BIT(value);
51
- }
52
- throw new ArgumentOutOfRangeException();
53
55
  }
54
56
 
55
57
  public static BIT operator ! (BIT value) {