当前位置: 首页 > 面试题库 >

Java中2的十六进制补码到十进制

袁晟
2023-03-14
问题内容

我有一个代表2的补码的十六进制字符串。是否有一种简单的方法(库/函数)将十六进制转换为十进制而不直接使用其位?

EG这是给定左侧十六进制的预期输出:

"0000" => 0
"7FFF" => 32767 (max positive number)
"8000" => -32768 (max negative number)
"FFFF" => -1

谢谢!


问题答案:

这似乎在欺骗Java转换数字而不强制给出正结果:

Integer.valueOf("FFFF",16).shortValue(); // evaluates to -1 (short)

当然,这种情况仅适用于8、16、32和64位2的补码:

Short.valueOf("FF",16).byteValue(); // -1 (byte)
Integer.valueOf("FFFF",16).shortValue(); // -1 (short)
Long.valueOf("FFFFFFFF",16).intValue(); // -1 (int)
new BigInteger("FFFFFFFFFFFFFFFF",16).longValue(); // -1 (long)


 类似资料:
  • 问题内容: 我有一个家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接受并返回的函数。不幸的是我没有此功能的任何草稿,我完全迷路了。我只有这个。 另外,我不能使用诸如Integer.toHexString()之类的预制函数或任何其他东西,我需要真正地制作算法,否则我什么都不会学。 问

  • 问题内容: 如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,转换为。 问题答案: 注 :这两个版本的期待整数值,并且,所以你需要,如果你有非整数值做自己的舍入。 以下将执行RGB到十六进制的转换,并添加任何所需的零填充: 转换另一种方式: 最后,在答案中讨论并在@cwolves的评论中建议使用的替代版本: 更新 这是它的一个版本,还解析了一个速记的三元组,例如“#03F”:

  • 问题内容: 我有一个Java文件 我想将 pic.bmp 转换为十六进制值的数组,以便可以编辑并将其保存为修改后的版本。 是否有Java类可以做到这一点? 问题答案: 你真幸运。我几个月前不得不这样做。这是一个精简版,需要从命令行获取两个参数。命令行参数都是文件名…第一个是输入文件,第二个是输出文件。输入文件以二进制形式读取,输出文件以ASCII十六进制形式写入。希望您可以根据自己的需要进行调整。

  • 问题内容: 我正在尝试将String十六进制转换为整数。从哈希函数(sha-1)计算出十六进制字符串。我收到此错误:java.lang.NumberFormatException。我猜它不喜欢十六进制的String表示形式。我该如何实现。这是我的代码: 例如,当我传递以下字符串: _DTOWsHJbEeC6VuzWPawcLA时 ,他的哈希值是: 0xC934E5D372B2AB6D0A50B9F

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec

  • 在此处输入图像描述 ** 我试着把248转换成二进制,然后把它转换成2的补语,再把它转换成十进制,但它给了我8,而不是-8 **