java - 在java中逐位读取数字字符串的最佳方法

标签 java

所以我实际上已经实现了这一点,但我认为必须有一个更正确和更有效的解决方案。

我必须将数字转换为二进制。我通过 Integer.toBinaryString(someNumber) 来完成,现在我必须对该二进制表示中的每个数字执行 XOR 。因此,如果我的号码是 2,其二进制表示形式是 010,现在假设我的另一个号码是 10,所以我必须执行 0^1,1^1,0^10^0,1^0,0^0 并创建新的二进制表示。

这是我尝试过并取得的成果。但我认为这不是最好的解决方案。我想要一个最佳且有效的解决方案,因为这是图像处理算法所必需的,并且这个过程针对每个像素进行。所以性能很重要..

    String binary = Integer.toBinaryString(125);
    StringBuilder concat = new StringBuilder();
    char[] numericArr = binary.toCharArray();
            for (char c : numericArr) {
                concat.append((Character.getNumericValue(c)^input2));
            }
    int output = Integer.parseInt(concat, 2);

最佳答案

您确实不想靠近字符串,并且您正在执行的操作非常昂贵。

对于您的用例,我建议将您的图像存储在字节数组中并迭代它进行异或。像这样的东西:

byte[] image;
for (int i = 0; i < image.length; i++) {
  image[i] ^= 255;
}

关于java - 在java中逐位读取数字字符串的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729308/

相关文章:

java - --> 在 Java 中是什么意思?

java - Java 中具有双值的有限机

java - 如何在 Spring 中获取单例 Controller 的原型(prototype) bean?

java.lang.IllegalArgumentException : Default constructor for class com. b.de 无法访问

java - 在 Spring Boot Rest 中将 GET 请求参数与 DTO 对象映射时出现问题

java - 对于小 x、大 y 值,有效的 HashCode() 是什么?

java - Ignite ClusterNode.consistendId() 返回的值与配置中定义的值不同

java - 使用 ModelMapper 时,如何为源类上的特定属性指定自定义映射?

Java:处理子线程中的异常

java - 错误 : Could not find or load main class C:\Program Files\Java\jdk1. 7.0_25\jre\bin\java