Java:如何从32位十六进制中获取16位的高值和低值?
需要一个关于如何执行以下操作的解决方案:接收十进制值,将其转换为32位十六进制,然后分离该32位十六进制,并获得高16位和低16位值。我一直在网上搜寻,找不到太多的信息 您可能会发现一些API很有用: http://download.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt(java.lang.String,int)Java:如何从32位十六进制中获取16位的高值和低值?,java,Java,需要一个关于如何执行以下操作的解决方案:接收十进制值,将其转换为32位十六进制,然后分离该32位十六进制,并获得高16位和低16位值。我一直在网上搜寻,找不到太多的信息 您可能会发现一些API很有用: http://download.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt(java.lang.String,int) 我想这是个家庭作业问题。因此,我将为您提供可以帮助您解决问题的信息,而不是解决方案 将数字转换为十六
我想这是个家庭作业问题。因此,我将为您提供可以帮助您解决问题的信息,而不是解决方案
toHexString()
方法完成substring()
方法以及length()
和一些简单的减法来完成不确定为什么要转换为十六进制,但要将32位值直接转换为两个16位值
int x = ...
short high = x >> 16;
short low = x & 0xFFFF;
这听起来像是一个家庭作业问题。如果我是你的话,我会先编写转换为十六进制的例程。你是说Decimal类型的实例吗?还有,什么是32位十六进制?你是说你想要一个8位的十六进制字符串吗?我有一种明显的感觉,这可能是另一种情况,有人通过它的人类可读表示来引用一个值。通过说“32位十六进制”,您实际上是指32位整数,还是这样一个整数的字符串表示形式?您需要更清楚地定义问题空间。“接收十进制值”-这是非整数吗?如果是这样,业务逻辑规定了什么策略来将非整数值转换为整数值?hex和这有什么关系?一个值和它的表示之间有一个重要的区别。当人们用“业务逻辑”这个术语来描述一些可能与业务无关的东西时,我总是觉得很有趣。好像所有的节目都是关于商业的。它的科学发生了什么?嗨,Kindall,toHexString方法将转换为16位十六进制,这不是必需的。例如:32位十六进制表示10000=461C4000,toHexString表示2710。加上零会得到00002710。我觉得很好。10000的十六进制肯定不是461C4000!它是,以32位表示。2710是16位的。参考点:等等。。。你想要一个与浮点值相等的十六进制值,但你不想费心这么说吗?啊。。。你为什么要把它从你原来的问题中去掉呢?好吧,在我的例子中,它不是一个浮点,而是一个十进制。我能够产生这个十六进制表示。获取高16位和低16位-是否只是将结果表示拆分为两个子字符串?