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

发布于 2022-09-01 19:34:33 字数 65 浏览 24 评论 0

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

博客:www.xiaobingby.com

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剩一世无双 2022-09-08 19:34:33

已解决 代码

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]);
        }
        
    }
    
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文