Java:更改二进制数(如 1010)并反转位。 1010 = 0101。0's to 1' 和 1's to 0'

标签 java binary integer

我一直在网上搜索,似乎永远找不到这个问题的答案。如何更改二进制数中的位?

Example: say I got 1010 and I want to change the numbers 0's to 1's and 1's to 0's.

现在,我有整数中的二进制数。

我完全被难住了,如果有人可以帮助我,谢谢。

如果人们对我的问题感到困惑,我们深表歉意。我想要做的是将数字 0 更改为 1,将 1 更改为 0。

最佳答案

如果你想翻转所有可以做的位

int i = 0b1010;

或者在 Java 6 中

int i = Integer.parseInt("1010", 2);
int i2 = ~i; // toggle 0 and 1's.
int i3 = i ^ 0xFF; // toggle the lower 8 bit only.

或者你可以尝试

public static void main(String... args) {
    System.out.println(toggleBits("1010"));
    System.out.println(toggleBits("00001010"));
    System.out.println(toggleBits("1100001010"));
}

private static String toggleBits(String s) {
    long i = Long.parseLong(s, 2);
    long i2 = i ^ ((1L << s.length()) - 1);
    String s2 = Long.toBinaryString(i2);
    while (s2.length() < s.length()) s2 = '0' + s2;
    return s2;
}

关于Java:更改二进制数(如 1010)并反转位。 1010 = 0101。0's to 1' 和 1's to 0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071796/

相关文章:

java - android - 从文本文件中逐行读取

java - SimpleDateFormat 编译前在 Android Studio 中抛出 ParseException

java - 从编辑文本中获取整数值

java - 如何正确地将对象(带有集合)绑定(bind)到Spring Forms?

java - 如何使用 mongodb 查询生成器编写 java 代码以使用 "_id"检索文档?

查找最高有效位的算法

c++ - C/C++ 程序将输出(int)返回给其他程序

algorithm - 从向量历史预测二进制占用向量

java - 使用数组或任何列表方法的Java列表

python - 如何在 Python 中使用 json.dumps() 将整数打印为十六进制字符串