-2
我試圖用十六進制表示緯度和經度。說我有一個緯度/經度設置像這樣:我是否正確地將我的負十進制經度轉換爲十六進制的Java?
28.418725,-81.581203
轉換(由千萬乘)以整數給出:
284187250,-815812030
轉換Java中的Latitude to Hex很容易:
Integer.toHexString(284187250);
轉換負經度更困難。這是我有:
import java.lang.StringBuffer;
public class ConvertNegativeLongitudeToHex {
public static void main(String[] args){
int longitude = -815812030;
String longitude_in_binary = Integer.toBinaryString(longitude);
StringBuffer longitude_in_binary_buffer = new StringBuffer(longitude_in_binary);
String longitude_in_binary_reverse = longitude_in_binary_buffer.reverse().toString();
int final_longitude_int = Integer.parseInt(longitude_in_binary_reverse, 2) + 1;
System.out.println(Integer.toHexString(final_longitude_int));
}
}
就像我說的。我需要澄清,我已經做到了這一點。此外,如果有更好,更優雅的方式來實現這一點,我也希望聽到。
它不完全清楚爲什麼你將其轉換成第一二元......但從根本上說,你期待什麼結果,而你得到什麼結果呢?如果你只是調用'Integer.toHexString(longitude)',會發生什麼? –
這就是爲什麼我轉換成二進制第一:https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html – Brian
我敢肯定還會有,無論你期待一個更簡單的方法要做的事情,但你還沒有告訴我們你在做什麼,或者你現在的代碼做了什麼。 –