首页 > JAVA 求代码 求原码、补码(二进制)

JAVA 求代码 求原码、补码(二进制)

输入一个整数,转换成二进制、求原码、补码、都是二进制。

博客:www.xiaobingby.com


已解决 代码

package BinaryTest;

public class BinaryTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int n = 3;
        MyBinary mb = new MyBinary(n);
        System.out.println("+"+n+"原码:");
        mb.YuanMa();
        System.out.println("+"+n+"补码");
        mb.YuanMa();
        System.out.println("-"+n+"原码:");
        mb.YuanMa();
        System.out.println("-"+n+"补码码");
        mb.BuMa();
    }
}

package BinaryTest;

public class MyBinary {
    
    int ib;
    int[] bin = new int[8];    //存放整数负数 转换的二进制
    int[] ym = new int[8];    //存放原码
    int[] bm = new int[8];    //存放补码
    
    public MyBinary() {
        
    }
    
    public MyBinary(int ib) {
        this.ib = ib;
    }
    
    /**
     *数负数转换二进制
     */
    public void toBinary() {
        int ib = this.ib;
        for (int i = 7; i >= 0; i--) {
            if (ib >= 0) {
                bin[i] = ib%2;
            } else {
                bin[i] = -(ib%2);
            }
            
            ib = ib/2;
        }
    }
    
    /**
     *数负数转换二进制
     *函数重载
     */
    public void toBinary(int arr[]) {
        int ib = this.ib;
        for (int i = 7; i >= 0; i--) {
            if (ib >= 0) {
                arr[i] = ib%2;
            } else {
                arr[i] = -(ib%2);
            }
            
            ib = ib/2;
        }
        
    }
    
    /**
     * 原码存放
     */
    public void YuanMa() {
        this.toBinary();
        toBinary(ym);
        for (int i = 0; i < 8; i++) {
            System.out.print(ym[i]);
        }
        System.out.println();
    }
    
    public void BuMa() {
        this.toBinary();
        toBinary(bm);
        qF();
        J1();
        for (int i = 0; i < 8; i++) {
            System.out.print(bm[i]);
        }
        System.out.println();
    }
    
    private void qF() {
        for (int i = 0; i < 8; i++) {
            if (bm[i] == 0) {
                bm[i] = 1;
            }
            else {
                bm[i] = 0;
            }
        }
    }
    
    private void J1() {
        int j = 1;
        for (int i = 7; i >= 0 && j == 1; i--) {
            if(bm[i] == 1){
                j = 1;
            }
            else {
                j = 0;
            }
            bm[i] +=1;
            bm[i]%=2;
        }
    }
    
    /**
     * 打印数组
     */
    public void pBinary() {
        
        for (int i = 0; i < 8; i++) {
            System.out.print(ym[i]);
        }
        
    }
    
}

【热门文章】
【热门文章】