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

回答編集履歴

2

追記

2020/04/19 16:01

投稿

meg_
meg_

スコア11013

answer CHANGED
@@ -1,3 +1,22 @@
1
+ 【追記】一部実装してみました。
2
+ ```Python
3
+ command = b"\x01\x04\x00\x00\x00\x01"
4
+ crc_registor = 0xFFFF
5
+
6
+ for data_byte in command:
7
+ tmp = crc_registor ^ data_byte
8
+ ```
9
+ ```VBA
10
+ command = &H140001
11
+ crc_registor = &HFFFF&
12
+
13
+ For i = 1 To Len(Hex(command))
14
+ data_byte = Val("&H" & Mid(Hex(command), i, 1) & "&")
15
+ tmp = crc Xor data_byte
16
+ Next i
17
+ ```
18
+
19
+ ---
1
20
  ``inputdata``に値を格納する際に``Set``は不要です。
2
21
  質問のコードでは``inputdata``Byte型の変数なので、格納できるのは0~255の範囲の単精度の正の数値となります。そのため``inputdata = &H140001``はオーバーフローします。
3
22
 

1

追記

2020/04/19 16:01

投稿

meg_
meg_

スコア11013

answer CHANGED
@@ -1,2 +1,17 @@
1
1
  ``inputdata``に値を格納する際に``Set``は不要です。
2
- 質問のコードでは``inputdata``Byte型の変数なので、格納できるのは0~255の範囲の単精度の正の数値となります。そのため``inputdata = &H140001``はオーバーフローします。
2
+ 質問のコードでは``inputdata``Byte型の変数なので、格納できるのは0~255の範囲の単精度の正の数値となります。そのため``inputdata = &H140001``はオーバーフローします。
3
+
4
+ ------
5
+ > "\x01\x04\x00\x00\x00\x01"を1バイトずつ
6
+
7
+ 配列にしてはどうでしょうか?
8
+ ```VBA
9
+ Dim a(6) As Byte
10
+
11
+ a(1) = 1
12
+ a(2) = 4
13
+ a(3) = 0
14
+ a(4) = 0
15
+ a(5) = 0
16
+ a(6) = 1
17
+ ```