gpt4 book ai didi

Java 六补码

转载 作者:行者123 更新时间:2023-12-01 15:48:42 26 4
gpt4 key购买 nike

如何获得给定输入的互补十六进制值?

这可能更通用一点,即有一个包含 X 个可能值的数组,如何转换像 arr[x] 这样的随机数组 --> arr[arr.length - arr.indexOf(x)].

请忽略语法。

最佳答案

以下代码片段将查找十六进制数的 16 补码:

BigInteger subtrahend = new BigInteger("2D", 16); 
// input, you can take input from user and use after validation
char[] array = new char[subtrahend.toString(16).length()];
// construct a character array of the given length
Arrays.fill(array, 'F');
// fill the array by F, look at the first source there the FF is subtracted by 2D
BigInteger minuend = new BigInteger(new String(array), 16);
// construct FFF... Biginteger of that length
BigInteger difference = minuend.subtract(subtrahend);
// calculate minus
BigInteger result = difference.add(BigInteger.ONE);
// add one to it
System.out.println(result.toString(16));
// print it in hex format

希望这对您有帮助。谢谢。

来源:

  1. Binary and Hexadecimal Arithmetic
  2. Digital Principles and Logic Design
<小时/>

首先通过从与输入长度相同的数字 FF... 中减去给定输入的 15 补码。然后加 1。

关于Java 六补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com