回答編集履歴

2

ビットシフト

2017/03/25 01:12

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -15,3 +15,29 @@
15
15
  }
16
16
 
17
17
  ```
18
+
19
+
20
+
21
+ また、文字列にせずともビットシフトを利用すればbyte配列から直接intに変換できます。
22
+
23
+ ```java
24
+
25
+ //元のデータの並びがこういうことですよね?
26
+
27
+ byte[] data = {0xFF, 0x00, 0x65, 0xF3, 0x33, 0x44, 0x55, 0x77, ・・・・};
28
+
29
+ for (int i = 2; i < data.length; i += 5) {
30
+
31
+ int x = 0;
32
+
33
+ for (int j = 0; j < 4; j++) {
34
+
35
+ x |= data[i + j] << ((3 - j) * 8);
36
+
37
+ }
38
+
39
+ int y = data[i + 4];
40
+
41
+ }
42
+
43
+ ```

1

Long\.parseLong追加

2017/03/25 01:12

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,6 +1,6 @@
1
1
  文字列をその桁数(8桁と2桁)で区切っていけばいいのでは。
2
2
 
3
- ※ただし、parseIntだと8桁の先頭ビットが1の場合(1文字目が8~F)、intの範囲を超えてしまうため、parseUnsignedIntを使うことをお勧めします。
3
+ ※ただし、parseIntだと8桁の先頭ビットが1の場合(1文字目が8~F)、intの範囲を超えてしまうため、parseUnsignedIntを使うかLong.parseLongでlongに変換することをお勧めします。
4
4
 
5
5
  ```java
6
6