回答編集履歴

7

修正

2022/06/17 04:45

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -1,16 +1,16 @@
1
1
  binで2進数表記すると先頭の0は消えるのでそのせいで32bit未満で1から始まるようにみえるのでは.その性質上「0」以外にbinで1から始まらない数は無いです.あとbinは'0b'が付加されるので長さは本来のものより2長くなります.
2
2
 
3
- 0.1を2進数表記するのは大変なので簡単のため0.5を例にとって説明します.
3
+ 0.1を2進数表記するのは大変なので簡単のため0.75を例にとって説明します.
4
4
 
5
- 例えば0.5は`1.0 * 2**-1`なのでバイナリで表すと
5
+ 例えば0.75は2進数で0.11であり,`1.1(2進数) * 2**-1`なので
6
6
  符号部: `0`
7
7
  指数部: `01111110` = -1(指数)+127(バイアス値)
8
- 仮数部: `00000000000000000000000` = 1.0の小数部分
8
+ 仮数部: `10000000000000000000000` = 1.10000000000000000000000の小数部分
9
9
  となり,単精度浮動小数としては
10
- `00111111000000000000000000000000`
10
+ `00111111010000000000000000000000`
11
11
  になります.
12
- このバイナリをuintとして解釈すると1056964608です.
12
+ このバイナリをuintとして解釈すると1061158912です.
13
13
  そしてbin関数で2進数表記すると先頭の「0」2つは省かれ,'0b'が付加されて
14
- `'0b111111000000000000000000000000'`
14
+ `'0b111111010000000000000000000000'`
15
15
  と表示されます.
16
16
 

6

修正

2022/06/17 04:33

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -9,7 +9,7 @@
9
9
  となり,単精度浮動小数としては
10
10
  `00111111000000000000000000000000`
11
11
  になります.
12
- をuintにキャストすると1056964608です.
12
+ のバイナリをuintとして解釈すると1056964608です.
13
13
  そしてbin関数で2進数表記すると先頭の「0」2つは省かれ,'0b'が付加されて
14
14
  `'0b111111000000000000000000000000'`
15
15
  と表示されます.

5

追記

2022/06/17 04:32

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -1,4 +1,6 @@
1
1
  binで2進数表記すると先頭の0は消えるのでそのせいで32bit未満で1から始まるようにみえるのでは.その性質上「0」以外にbinで1から始まらない数は無いです.あとbinは'0b'が付加されるので長さは本来のものより2長くなります.
2
+
3
+ 0.1を2進数表記するのは大変なので簡単のため0.5を例にとって説明します.
2
4
 
3
5
  例えば0.5は`1.0 * 2**-1`なのでバイナリで表すと
4
6
  符号部: `0`

4

修正

2022/06/17 04:29

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -1,4 +1,4 @@
1
- binで2進数表記すると先頭の0は消えるのでそのせいで32bit未満で1から始まるようにみえるのでは.その性質上「0」以外にbinで1から始まらない数は無いです.あとbinは0xされるので長さは本来のものより2長くなります.
1
+ binで2進数表記すると先頭の0は消えるのでそのせいで32bit未満で1から始まるようにみえるのでは.その性質上「0」以外にbinで1から始まらない数は無いです.あとbinは'0b'付加されるので長さは本来のものより2長くなります.
2
2
 
3
3
  例えば0.5は`1.0 * 2**-1`なのでバイナリで表すと
4
4
  符号部: `0`
@@ -8,7 +8,7 @@
8
8
  `00111111000000000000000000000000`
9
9
  になります.
10
10
  これをuintにキャストすると1056964608です.
11
- そしてbin関数で2進数表記すると先頭の「0」2つは省かれ,0bが付加されて
11
+ そしてbin関数で2進数表記すると先頭の「0」2つは省かれ,'0b'が付加されて
12
12
  `'0b111111000000000000000000000000'`
13
13
  と表示されます.
14
14
 

3

些細な修正

2022/06/17 04:27

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -8,7 +8,7 @@
8
8
  `00111111000000000000000000000000`
9
9
  になります.
10
10
  これをuintにキャストすると1056964608です.
11
- そしてbin関数で2進数表記すると先頭の02つは省かれ,0bが付加されて
11
+ そしてbin関数で2進数表記すると先頭の02つは省かれ,0bが付加されて
12
12
  `'0b111111000000000000000000000000'`
13
13
  と表示されます.
14
14
 

2

些細な修正

2022/06/17 04:26

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -8,7 +8,7 @@
8
8
  `00111111000000000000000000000000`
9
9
  になります.
10
10
  これをuintにキャストすると1056964608です.
11
- そしてbin関数で2進数表記すると先頭の02つは省かれるので
11
+ そしてbin関数で2進数表記すると先頭の02つは省かれ,0bが付加されて
12
12
  `'0b111111000000000000000000000000'`
13
13
  と表示されます.
14
14
 

1

些細な修正

2022/06/17 04:25

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  例えば0.5は`1.0 * 2**-1`なのでバイナリで表すと
4
4
  符号部: `0`
5
- 指数部: `01111110` = -1+127
5
+ 指数部: `01111110` = -1(指数)+127(バイアス値)
6
6
  仮数部: `00000000000000000000000` = 1.0の小数部分
7
7
  となり,単精度浮動小数としては
8
8
  `00111111000000000000000000000000`