| 24小時(shí)熱門版塊排行榜 |
| 5 | 1/1 | 返回列表 |
| 查看: 1922 | 回復(fù): 4 | ||
chineseway捐助貴賓 (知名作家)
離...
|
[求助]
請(qǐng)教java里如何將16進(jìn)制轉(zhuǎn)換成10進(jìn)制,并自動(dòng)識(shí)別處理成正負(fù)數(shù)
|
|
請(qǐng)教java里如何將16進(jìn)制轉(zhuǎn)換成10進(jìn)制,并自動(dòng)識(shí)別處理成正負(fù)數(shù) 我們的程序里有一段代碼本來(lái)的目的就是將獲取的一個(gè)16進(jìn)制的數(shù)據(jù)轉(zhuǎn)換成10進(jìn)制, 下面是獲取的16進(jìn)制數(shù)據(jù)的一些例子: 040B 0103 04D1 00E8 FFB0 FFBA FFE7 FFD8 當(dāng)獲取到 040B 0103 04D1 00E8 這些數(shù)據(jù)的時(shí)候,按"正常"的16進(jìn)制轉(zhuǎn)成10進(jìn)制,得到的都是正數(shù)的結(jié)果,都是對(duì)的 但是獲取到 FFB0 FFBA FFE7 FFD8 這些數(shù)據(jù)的時(shí)候,按"正常"的16進(jìn)制轉(zhuǎn)成10進(jìn)制,得到的是很大的正數(shù)的結(jié)果,比如FFB0會(huì)轉(zhuǎn)換成 65456 但實(shí)際上這時(shí)候我想把它轉(zhuǎn)換成-80 下面這段代碼我們是找個(gè)朋友寫的,而且有些時(shí)候處理的也不對(duì),我對(duì)編程完全外行,想請(qǐng)高手幫 忙修改下. 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; } |

至尊木蟲(chóng) (著名寫手)
|
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; |
至尊木蟲(chóng) (著名寫手)
捐助貴賓 (知名作家)
離...
|
呵呵 謝謝 你這倒是個(gè)辦法 但不知道是不是有什么正統(tǒng)的方法 我總感覺(jué)有種直接的方法 定義好數(shù)據(jù)類型后 一個(gè)函數(shù)搞定的 給你看看別人的方法 http://topic.csdn.net/u/20120713 ... 7-597b043761ab.html |

至尊木蟲(chóng) (著名寫手)
|
我問(wèn)你一句,哪種辦法你更能理解?通過(guò)你的描述,你不懂編程,所以我第一個(gè)帖子解釋了下原理,然后給你個(gè)大概的方案。然后你要代碼,這種二進(jìn)制的運(yùn)算在很長(zhǎng)的16進(jìn)制轉(zhuǎn)換中很快,但是要有很好的基礎(chǔ)去理解,而這個(gè)正是你沒(méi)有的(你也提到要朋友去測(cè)試了)。那這種簡(jiǎn)單易懂的就正適合你了,而且你的16進(jìn)制數(shù)只有4位(<2的16次方),更不需要復(fù)雜的代碼了。能抓老鼠的就是好貓 |
| 5 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 286求調(diào)劑 +10 | Faune 2026-03-21 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 280求調(diào)劑 +11 | 咕嚕曉曉 2026-03-18 | 12/600 |
|
|
[考研] 廣西大學(xué)材料導(dǎo)師推薦 +3 | 夏夏夏小正 2026-03-17 | 5/250 |
|
|
[考研] 考研調(diào)劑 +3 | 呼呼?~+123456 2026-03-21 | 3/150 |
|
|
[考研] 333求調(diào)劑 +5 | 87639 2026-03-21 | 7/350 |
|
|
[考研] 0703化學(xué)調(diào)劑 +11 | 妮妮ninicgb 2026-03-15 | 15/750 |
|
|
[考研] 0703化學(xué)297求調(diào)劑 +3 | Daisy☆ 2026-03-20 | 3/150 |
|
|
[考研] 313求調(diào)劑 +4 | 肆叁貳壹22 2026-03-19 | 4/200 |
|
|
[考研] 0805材料320求調(diào)劑 +3 | 深海物語(yǔ) 2026-03-20 | 3/150 |
|
|
[考研] 279分求調(diào)劑 一志愿211 +14 | chaojifeixia 2026-03-19 | 15/750 |
|
|
[考研] 330求調(diào)劑0854 +3 | assdll 2026-03-21 | 3/150 |
|
|
[考研] 310求調(diào)劑 +3 | baibai1314 2026-03-16 | 3/150 |
|
|
[考研] 初始318分求調(diào)劑(有工作經(jīng)驗(yàn)) +3 | 1911236844 2026-03-17 | 3/150 |
|
|
[考研] 330求調(diào)劑 +4 | 小材化本科 2026-03-18 | 4/200 |
|
|
[考研] 一志愿西安交通大學(xué) 學(xué)碩 354求調(diào)劑211或者雙一流 +3 | 我想要讀研究生 2026-03-20 | 3/150 |
|
|
[考研] 261求B區(qū)調(diào)劑,科研經(jīng)歷豐富 +3 | 牛奶很忙 2026-03-20 | 4/200 |
|
|
[考研] 環(huán)境工程調(diào)劑 +9 | 大可digkids 2026-03-16 | 9/450 |
|
|
[考研] 材料學(xué)碩318求調(diào)劑 +5 | February_Feb 2026-03-19 | 5/250 |
|
|
[考研] 生物學(xué)調(diào)劑招人。! +3 | 山海天嵐 2026-03-17 | 4/200 |
|
|
[考博] 申博26年 +3 | 八6八68 2026-03-19 | 3/150 |
|