回答編集履歴
3
追記
test
CHANGED
@@ -14,6 +14,12 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
+
10進数: 12と34を入力して1234を出力する時は`12 * 100 + 34 * 1`
|
18
|
+
|
19
|
+
16進数: 0xABと0xCDを入力して0xABCDを出力する時も同様に`0xAB * 0x100 + 0xCD * 1`
|
20
|
+
|
21
|
+
|
22
|
+
|
17
23
|
> Q2)intをGetBytesすると、なぜ4つずつの組の配列になるのか?
|
18
24
|
|
19
25
|
|
@@ -27,6 +33,46 @@
|
|
27
33
|
|
28
34
|
|
29
35
|
1byte分の入力しか入れてないから
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
byte[] size1 = BitConverter.GetBytes(size / 16777216);
|
42
|
+
|
43
|
+
byte[] size2 = BitConverter.GetBytes(size % 16777216 / 65536);
|
44
|
+
|
45
|
+
byte[] size3 = BitConverter.GetBytes(size % 16777216 % 65536 / 256);
|
46
|
+
|
47
|
+
byte[] size4 = BitConverter.GetBytes(size % 16777216 % 65536 % 256);
|
48
|
+
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
32bitの変数sizeに対して0x1000000で割ると、出て来る数は-128~+127
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
`size % 16777216` これは上位8bitを削って下位24bitを出してるのでそこから2の16乗で割ると出て来る数は-128~+127
|
58
|
+
|
59
|
+
以下同様
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
削ぎ落とさずに
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
```
|
68
|
+
|
69
|
+
byte[] le_size = BitConverter.GetBytes(size);
|
70
|
+
|
71
|
+
```
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
でよい
|
30
76
|
|
31
77
|
|
32
78
|
|
@@ -65,3 +111,21 @@
|
|
65
111
|
|
66
112
|
|
67
113
|
intが32bitなので消えました
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
> List<byte> bytes = new List<byte>({5,12,24,40,58,63,71,86});
|
118
|
+
|
119
|
+
としたとき、
|
120
|
+
|
121
|
+
ひょっとして、それは、
|
122
|
+
|
123
|
+
List<List<byte>> bytess = new List<List<byte>>({{5,12,24,40}, {58,63,71,86}});
|
124
|
+
|
125
|
+
みたいに
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
4byte毎にintに変換したいのかバイト列の一部をintに変換したいのか
|
130
|
+
|
131
|
+
見失ってませんか?
|
2
0x01000000 -> 0x1000000
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
```
|
6
6
|
|
7
|
-
16777216 = 0x
|
7
|
+
16777216 = 0x1000000 = 0x100 * 0x100 * 0x100
|
8
8
|
|
9
9
|
65536 = 0x10000 = 0x100 * 0x100
|
10
10
|
|
1
脱字 & フォーマット修正
test
CHANGED
@@ -2,11 +2,15 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
```
|
6
|
+
|
5
7
|
16777216 = 0x01000000 = 0x100 * 0x100 * 0x100
|
6
8
|
|
7
|
-
6553
|
9
|
+
65536 = 0x10000 = 0x100 * 0x100
|
8
10
|
|
9
11
|
256 = 0x100
|
12
|
+
|
13
|
+
```
|
10
14
|
|
11
15
|
|
12
16
|
|