| 5 | 1/1 | 返回列表 |
| 查看: 1938 | 回復(fù): 4 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||
chineseway捐助貴賓 (知名作家)
離...
|
[求助]
請教java里如何將16進制轉(zhuǎn)換成10進制,并自動識別處理成正負數(shù)
|
|
|
請教java里如何將16進制轉(zhuǎn)換成10進制,并自動識別處理成正負數(shù) 我們的程序里有一段代碼本來的目的就是將獲取的一個16進制的數(shù)據(jù)轉(zhuǎn)換成10進制, 下面是獲取的16進制數(shù)據(jù)的一些例子: 040B 0103 04D1 00E8 FFB0 FFBA FFE7 FFD8 當(dāng)獲取到 040B 0103 04D1 00E8 這些數(shù)據(jù)的時候,按"正常"的16進制轉(zhuǎn)成10進制,得到的都是正數(shù)的結(jié)果,都是對的 但是獲取到 FFB0 FFBA FFE7 FFD8 這些數(shù)據(jù)的時候,按"正常"的16進制轉(zhuǎn)成10進制,得到的是很大的正數(shù)的結(jié)果,比如FFB0會轉(zhuǎn)換成 65456 但實際上這時候我想把它轉(zhuǎn)換成-80 下面這段代碼我們是找個朋友寫的,而且有些時候處理的也不對,我對編程完全外行,想請高手幫 忙修改下. String ph=String.valueOf(charArray[10])+String.valueOf(charArray [11])+String.valueOf(charArray[12])+String.valueOf(charArray[13]); double ph_d=0.0; int ph_t=Integer.parseInt(ph,16); String ph_bi=Integer.toBinaryString(ph_t); char[] ph_char=ph_bi.toCharArray(); if(ph_t/100.0>513){ String ph_bi2=""; for(char obj:ph_char){ if(obj=='1'){ ph_bi2+="0"; }else{ ph_bi2+="1"; } } ph_d=-(Integer.valueOf(ph_bi2,2)+1); }else{ ph_d=ph_t/100.0; } |

至尊木蟲 (著名寫手)
至尊木蟲 (著名寫手)
|
base 16 FFB0 = base 2 1111,1111,1011,0000 base 16 040B = base 2 0000,0100,0000,1011 from your description, it seems that when the first digit in the base 2 string equal to 1, you want a negative value and when it = 0 , you want a positive value. If this is true it is easy, do a comparison with the threshold 1000,0000,0000,0000 which is 32768 assuming int value is the number converted from base 16 string if (value >= 32768) return 65536 - value; return value; |
捐助貴賓 (知名作家)
離...
|
呵呵 謝謝 你這倒是個辦法 但不知道是不是有什么正統(tǒng)的方法 我總感覺有種直接的方法 定義好數(shù)據(jù)類型后 一個函數(shù)搞定的 給你看看別人的方法 http://topic.csdn.net/u/20120713 ... 7-597b043761ab.html |

至尊木蟲 (著名寫手)
|
我問你一句,哪種辦法你更能理解?通過你的描述,你不懂編程,所以我第一個帖子解釋了下原理,然后給你個大概的方案。然后你要代碼,這種二進制的運算在很長的16進制轉(zhuǎn)換中很快,但是要有很好的基礎(chǔ)去理解,而這個正是你沒有的(你也提到要朋友去測試了)。那這種簡單易懂的就正適合你了,而且你的16進制數(shù)只有4位(<2的16次方),更不需要復(fù)雜的代碼了。能抓老鼠的就是好貓 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 346求調(diào)劑 +4 | 鄭誠樂 2026-04-02 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 312 化工或制藥調(diào)劑 +3 | 小小墨123 2026-04-02 | 4/200 |
|
|
[考研] 求調(diào)劑求調(diào)劑 +6 | 121. 2026-04-02 | 6/300 |
|
|
[考研] 找調(diào)劑 +6 | 楚喬喬 2026-04-01 | 6/300 |
|
|
[考研] 【求調(diào)劑】新能源材料本科,一志愿211,初試321 +6 | 求調(diào)劑學(xué)校, 2026-04-02 | 6/300 |
|
|
[考研] 304求調(diào)劑 +12 | 素年祭語 2026-03-31 | 15/750 |
|
|
[考研] 一志愿南昌大學(xué)324求調(diào)劑 +12 | hanamiko 2026-03-27 | 12/600 |
|
|
[考研] 0703求調(diào)劑 +4 | zizimo 2026-03-31 | 4/200 |
|
|
[考研] 英一數(shù)二生物信息學(xué)287分,本科生物科學(xué),求調(diào)劑 +3 | 碧水xyz 2026-03-29 | 4/200 |
|
|
[考研] 一志愿鄭大085600,310分求調(diào)劑 +6 | 李瀟可 2026-03-26 | 6/300 |
|
|
[考研] 求調(diào)劑 +5 | 零八# 2026-03-27 | 5/250 |
|
|
[考研] 086000生物與醫(yī)藥 初試274求調(diào)劑 +5 | 小叮當(dāng)來了 2026-03-30 | 6/300 |
|
|
[考研] 求調(diào)劑 +9 | akdhjs 2026-03-31 | 10/500 |
|
|
[考研] 材料工程專碩求調(diào)劑 +10 | hyl3153942 2026-03-29 | 10/500 |
|
|
[考研] 吉大生物學(xué)326分求調(diào)劑 +3 | sunnyupup 2026-03-31 | 3/150 |
|
|
[考研] 一志愿中海洋320化學(xué)工程與技術(shù)學(xué)碩求調(diào)劑 +8 | 披星河 2026-03-30 | 8/400 |
|
|
[考研] 298求調(diào)劑 +3 | 種圣賜 2026-03-29 | 3/150 |
|
|
[考研] 315調(diào)劑 +4 | 0860求調(diào)劑 2026-03-26 | 5/250 |
|
|
[考研] 292求調(diào)劑 +4 | 求求了收下我吧?/a> 2026-03-26 | 4/200 |
|
|
[考研] 324求調(diào)劑 +5 | hanamiko 2026-03-26 | 5/250 |
|