回答編集履歴
2
訂正
test
CHANGED
@@ -13,3 +13,23 @@
|
|
13
13
|
byte d = (byte)(((0x000000FF | data)) & 0xFF);
|
14
14
|
|
15
15
|
```
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
訂正
|
20
|
+
|
21
|
+
uint(符号なし4byte)、ubyte(符号なし1byte)とします。
|
22
|
+
|
23
|
+
```C
|
24
|
+
|
25
|
+
uint data = 2292541993;//10001000101001010110101000101001
|
26
|
+
|
27
|
+
ubyte a = (ubyte)((data >> 24) & 0xFF);
|
28
|
+
|
29
|
+
ubyte b = (ubyte)((data >> 16) & 0xFF);
|
30
|
+
|
31
|
+
ubyte c = (ubyte)((data) >> 8) & 0xFF);
|
32
|
+
|
33
|
+
ubyte d = (ubyte)(data & 0xFF);
|
34
|
+
|
35
|
+
```
|
1
byte型変数に変更
test
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
int型の変数
|
1
|
+
int型の変数を4byte、byte型の変数を1byteとしたとき、1byteずつ取り出すならビット演算子を使うことができます。
|
2
2
|
|
3
3
|
```C
|
4
4
|
|
5
5
|
int data = 2292541993;//10001000101001010110101000101001
|
6
6
|
|
7
|
-
|
7
|
+
byte a = (byte)(((0xFF000000 | data) >> 24) & 0xFF);
|
8
8
|
|
9
|
-
|
9
|
+
byte b = (byte)(((0x00FF0000 | data) >> 16) & 0xFF);
|
10
10
|
|
11
|
-
|
11
|
+
byte c = (byte)(((0x0000FF00 | data) >> 8) & 0xFF);
|
12
12
|
|
13
|
-
|
13
|
+
byte d = (byte)(((0x000000FF | data)) & 0xFF);
|
14
14
|
|
15
15
|
```
|