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,我无法打印它。
答案 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()
函数,它就会为您转换。
之后你只需要为你想要模拟的大门添加你的逻辑。
希望这能指出你正确的方向。祝你好运!