teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

訂正

2016/06/14 23:05

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -5,4 +5,14 @@
5
5
  byte b = (byte)(((0x00FF0000 | data) >> 16) & 0xFF);
6
6
  byte c = (byte)(((0x0000FF00 | data) >> 8) & 0xFF);
7
7
  byte d = (byte)(((0x000000FF | data)) & 0xFF);
8
+ ```
9
+
10
+ 訂正
11
+ uint(符号なし4byte)、ubyte(符号なし1byte)とします。
12
+ ```C
13
+ uint data = 2292541993;//10001000101001010110101000101001
14
+ ubyte a = (ubyte)((data >> 24) & 0xFF);
15
+ ubyte b = (ubyte)((data >> 16) & 0xFF);
16
+ ubyte c = (ubyte)((data) >> 8) & 0xFF);
17
+ ubyte d = (ubyte)(data & 0xFF);
8
18
  ```

1

byte型変数に変更

2016/06/14 23:05

投稿

masaya_ohashi
masaya_ohashi

スコア9210

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