javascriptがまったく異なるものを思いついたときに、javaのhexstringからbytearrayへの関数が正しい2進数を生成する方法を理解しようとしています。
ジャワ
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte)
((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16));
}
return data;
}
Javascript
this.hexStringToByteArray = function(s) {
var len = s.length;
var data = [];
for(var i=0; i<(len/2); data[i++]=0) {}
for (var i = 0; i < len; i += 2) {
data[i / 2] = (parseInt(s.charAt(i), 16) << 4)
+ parseInt(s.charAt(i+1), 16);
}
return data;
};
ジャワ:
"a3" = -93;
Javascript:
"a3" = 163;
(バイト) キャストがないと、Java は JavaScript と同じ数値を生成します。特定の変数をバイトにすることができない場合、javascriptにJavaと同じ数値(正または負)を生成させるにはどうすればよいですか?