繁体   English   中英

将数组编号转换为负数

[英]convert array numbers to negative

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,所以我无法打印它。

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

如果没有,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位)。

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

之后,您只需要为要模拟的门添加逻辑即可。

希望这为您指明了正确的方向。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM