| 查看: 1867 | 回复: 4 | ||
chineseway捐助贵宾 (知名作家)
离...
|
[求助]
请教java里如何将16进制转换成10进制,并自动识别处理成正负数
|
|
请教java里如何将16进制转换成10进制,并自动识别处理成正负数 我们的程序里有一段代码本来的目的就是将获取的一个16进制的数据转换成10进制, 下面是获取的16进制数据的一些例子: 040B 0103 04D1 00E8 FFB0 FFBA FFE7 FFD8 当获取到 040B 0103 04D1 00E8 这些数据的时候,按"正常"的16进制转成10进制,得到的都是正数的结果,都是对的 但是获取到 FFB0 FFBA FFE7 FFD8 这些数据的时候,按"正常"的16进制转成10进制,得到的是很大的正数的结果,比如FFB0会转换成 65456 但实际上这时候我想把它转换成-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; } |
» 猜你喜欢
求助:我三月中下旬出站,青基依托单位怎么办?
已经有9人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
小弟初学电化学,想请教大侠们,电极极化的原理到底是怎么样的,一直不太明白
已经有3人回复
endnote转换格式的问题
已经有8人回复
请教如何排查HPLC残留
已经有15人回复
静电势为什么有正负值?
已经有102人回复
【求助】Mulliken atomic spin densities的正负说明什么问题?
已经有7人回复
【重谢】如何用16进制文件编辑器Ultraedit查看QQ2011聊天记录
已经有4人回复
【交流】看看大家都是怎样计算正负电子湮灭的截面的
已经有8人回复

wizardfan
至尊木虫 (著名写手)
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
【答案】应助回帖
★
感谢参与,应助指数 +1
chineseway: 金币+1, 谢谢 这个我知道 我要的是代码 2012-07-31 14:27:49
感谢参与,应助指数 +1
chineseway: 金币+1, 谢谢 这个我知道 我要的是代码 2012-07-31 14:27:49
|
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; |
2楼2012-07-13 16:23:31
wizardfan
至尊木虫 (著名写手)
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
3楼2012-07-31 16:32:52
chineseway
捐助贵宾 (知名作家)
离...
- 应助: 0 (幼儿园)
- 贵宾: 0.45
- 金币: 4408.4
- 散金: 3
- 红花: 1
- 帖子: 5496
- 在线: 46.8小时
- 虫号: 67083
- 注册: 2005-05-04
- 专业: 细胞生物学研究中的新方法
|
呵呵 谢谢 你这倒是个办法 但不知道是不是有什么正统的方法 我总感觉有种直接的方法 定义好数据类型后 一个函数搞定的 给你看看别人的方法 http://topic.csdn.net/u/20120713 ... 7-597b043761ab.html |

4楼2012-08-01 17:33:30
wizardfan
至尊木虫 (著名写手)
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
5楼2012-08-01 18:13:39









回复此楼