2
使用谷歌搜索,我發現沒有太多關於如何將數字轉換爲十六進制浮點單精度的信息。有三個明確的步驟:1轉換整個二進制部分。 2添加逗號並將小數部分轉換爲二進制。 3將結果寫入科學報告。 4將結果傳遞給IEEE-754標準的32位。這會導致二進制。然後把它變成十六進制。而這一切都是一個無賴,我把代碼希望它會爲我解決;-)問候。在C中浮點指向十六進制#
private String Float2Hex(String value) {
String[] aux;
String number = "", mantissa = "", exponent = "";
Double div = 0;
int exp = 0;
aux = value.Split('.');
number = Convert.ToString(int.Parse(aux[0]), 2);
exp = number.Length - 1;
mantissa = number.Substring(1, number.Length - 1);
while ((aux.Length > 1) && (mantissa.Length < 23)) {
div = Double.Parse("0," + aux[1]) * 2;
aux = div.ToString().Split(',');
mantissa += aux[0];
}
while (mantissa.Length < 23) // Simple precision = 23 bits
mantissa += "0";
exponent = Convert.ToString(exp + 127, 2);
if (value.Substring(0, 1).Equals("-"))
number = "1" + exponent + mantissa;
else
number = "0" + exponent + mantissa;
return Bin2Hex(number);
}
我用另一個合作伙伴以下BIN2HEX函數:Binary to Hexadecimal
呵呵,剛纔我將添加像你;-)多虧了新的解決方案。 – Drako 2014-09-24 11:39:11