Как преобразовать десятичное значение (температура) в 16 бит шестнадцатеричного в java?Как преобразовать десятичное значение в шестнадцатеричное в java?
вход: -54,9
Ожидаемый результат: 0x8225
У меня обратный код для него, где я уверен, преобразование 16 байт шестнадцатеричные в десятичное значение (температура).
private static double hexDataToTemperature(String tempHexData) {
String tempMSBstr = tempHexData.substring(0, 2);
String tempLSBstr = tempHexData.substring(2, 4);
int tempMSB = Integer.parseInt(tempMSBstr, 16);
int tempLSB = Integer.parseInt(tempLSBstr, 16);
int sign = 1;
if (tempMSB >= 128) {
tempMSB = tempMSB - 128;
sign = -1;
}
Float f = (float) (sign * ((float) ((tempMSB * 256) + tempLSB)/10));
return Double.parseDouble("" + f);
}
http://stackoverflow.com/questions/13465098/decimal-to-hexadecimal-converter-in-java – Stultuske
16 байт - 16 бит? – laune
сначала хорошая идея, поиск в базе данных stackoverflow – HCarrasko