将数组转换为负数

时间:2016-06-29 11:34:53

标签: java arrays

Java的。我想以负片形式提供二进制数组,但我希望原始的正二进制数保持在那里,所以我可以在我的程序中使用正数和负数,但我找不到转换的方法我的数组中的所有二进制数都是负二进制数。

    class Logicgates {
    public static void main (String args[]) {
        String binary[] = {
"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"
        };
        int a = 3;
        int b = 5;
        int c = a | b; // 0010|0100 = 0110 
        int d = a & b; // 0010&0100 = 0000
        int ff= a ^ b;
        int f = ~((~a&b) ^ (~b | a)); 
        int g = ~f | 0x0f;
        System.out.println("a = " + binary[a]);
        System.out.println("b = " + binary[b]);
        System.out.println("c = " + binary[c]);
        System.out.println("d = " + binary[d]);
        System.out.println("ff = " + binary[ff]);
        System.out.println("f = " + binary[f]);
        System.out.println("g = " + binary[g]);
    }
}

这里g的值是-1,但由于我的数组只包含正1,我无法打印它。

1 个答案:

答案 0 :(得分:0)

如果您想使用原始阵列,我完全理解,因为这可能是您的作业/项目/学习经历的要求。

如果没有,Java实际上在java.lang库中有一个内置函数,它将十进制数转换为二进制数。输出可能不完全符合您的要求,因此您可能需要进行一些更改。

import java.lang.*;
public static void main(String[] args) {

    int positive = 14;
    System.out.println("Positive Number = " + positive);

    int negative = -14;
    System.out.println("Negative Number = " + negative);

   //to binary
    System.out.println("Positive Binary is " + Integer.toBinaryString(positive));
    System.out.println("Negative Binary is " + Integer.toBinaryString(negative));
    }

此代码段的输出将为

Positive Number = 14
Negative Number = -14
Positive Binary is 1110
Negative Binary is 11111111111111111111111111110010

正如您所看到的,负数输出整个32位字符串,但它应该足够简单,您可以将其调整到您要查找的大小(例如4位或5位)。 / p>

使用这种方法,您不需要拥有二进制字符串数组。您只需将数字传递给toBinaryString()函数,它就会为您转换。

之后你只需要为你想要模拟的大门添加你的逻辑。

希望这能指出你正确的方向。祝你好运!