gpt4 book ai didi

java - 如何以编程方式在 Java 中获取二进制数的 2 的补码

转载 作者:行者123 更新时间:2023-11-30 06:49:33 25 4
gpt4 key购买 nike

如何在 Android/Java 中计算十六进制数的 2 的补码。

    For Example : 
String x = 10011010;
1's complement of x = 01100101;
2's complement is 01100110;

我如何在 Java 中以编程方式实现?

我曾尝试使用以下代码将二进制文件转换为 1 的补码:

public String complementFunction(String bin) {
String ones = "";

for (int i = 0; i < bin.length(); i++) {
ones += flip(bin.charAt(i));
}
return ones;
}

// Returns '0' for '1' and '1' for '0'
public char flip(char c) {
return (c == '0') ? '1' : '0';
}

但我无法得到它的补码。

最佳答案

感谢大家的帮助。我得到了解决方案,如下所示:

  public String twosCompliment(String bin) {
String twos = "", ones = "";

for (int i = 0; i < bin.length(); i++) {
ones += flip(bin.charAt(i));
}
int number0 = Integer.parseInt(ones, 2);
StringBuilder builder = new StringBuilder(ones);
boolean b = false;
for (int i = ones.length() - 1; i > 0; i--) {
if (ones.charAt(i) == '1') {
builder.setCharAt(i, '0');
} else {
builder.setCharAt(i, '1');
b = true;
break;
}
}
if (!b)
builder.append("1", 0, 7);

twos = builder.toString();

return twos;
}

// Returns '0' for '1' and '1' for '0'
public char flip(char c) {
return (c == '0') ? '1' : '0';
}

感谢大家的帮助。

关于java - 如何以编程方式在 Java 中获取二进制数的 2 的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42595963/

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