回答編集履歴

2

訂正

2016/06/14 23:05

投稿

masaya_ohashi
masaya_ohashi

スコア9206

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型変数に変更

2016/06/14 23:05

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -1,15 +1,15 @@
1
- int型の変数(4byte)としたとき、1byteずつ取り出すならビット演算子を使うことができます。
1
+ int型の変数4byte、byte型の変数を1byteとしたとき、1byteずつ取り出すならビット演算子を使うことができます。
2
2
 
3
3
  ```C
4
4
 
5
5
  int data = 2292541993;//10001000101001010110101000101001
6
6
 
7
- int a = (0xFF000000 | data) >> 24;
7
+ byte a = (byte)(((0xFF000000 | data) >> 24) & 0xFF);
8
8
 
9
- int b = (0x00FF0000 | data) >> 16;
9
+ byte b = (byte)(((0x00FF0000 | data) >> 16) & 0xFF);
10
10
 
11
- int c = (0x0000FF00 | data) >> 8;
11
+ byte c = (byte)(((0x0000FF00 | data) >> 8) & 0xFF);
12
12
 
13
- int d = (0x000000FF | data);
13
+ byte d = (byte)(((0x000000FF | data)) & 0xFF);
14
14
 
15
15
  ```