zoukankan      html  css  js  c++  java
  • 动手动脑

     1 yuan码fan码bu码

    程序实现验证

    package complement;
    
    import java.util.Scanner;
    
    public class complement
    {
        public static void main(String[] args)
        {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个(-127)-128的整数a");
            int Originala;
            int Originalb;
            while (true)
            {
                Originala = sc.nextInt();
                if (Originala >= -127 && Originala <= 128)
                {
                    System.out.println("a的原码是:" + getBinary(Originala));
                    if (Originala > 0)
                    {
                        System.out.println("a的反码是:" + getBinary(Originala));
                        System.out.println("a的补码是:" + getBinary(Originala));
                    } else
                    {
                        System.out.println("a的反码是:" + getReverse(getBinary(Originala)));
                        System.out.println("a的补码是:" + getComplement(getReverse(getBinary(Originala))));
                    }
    
                    break;
                } else
                {
                    System.out.println("超出范围,请重新输入");
                }
            }
            System.out.println("请输入一个(-127)-128的整数a");
            while (true)
            {
                Originalb = sc.nextInt();
                if (Originalb >= -127 && Originalb <= 128)
                {
                    System.out.println("b的原码是:" + getBinary(Originalb));
                    if (Originalb > 0)
                    {
                        System.out.println("b的反码是:" + getBinary(Originalb));
                        System.out.println("b的补码是:" + getBinary(Originalb));
                    } else
                    {
                        System.out.println("b的反码是:" + getReverse(getBinary(Originalb)));
                        System.out.println("b的补码是:" + getComplement(getReverse(getBinary(Originalb))));
                    }
    
                    break;
                } else
                {
                    System.out.println("超出范围,请重新输入");
                }
            }
            String ca=getComplement(getReverse(getBinary(Originala)));
            String cb=getComplement(getReverse(getBinary(Originalb)));
           int [] complementa=new int[8];
           int [] complementb=new int[8];
           for(int i=0;i<8;i++) {
               complementa[i]=Integer.parseInt(ca.charAt(i)+"");
               complementb[i]=Integer.parseInt(cb.charAt(i)+"");
           }
           System.out.println("按位与的结果:");
           System.out.println(getBinary(Originala&Originalb));
           System.out.println("按位异或的结果:");
           System.out.println(getBinary(Originala^Originalb));
    
        }
        
        
        public static String getBinary(int k)
        {
            String str = "";
            if (k == 0)
                return "00000000";
            else
            {
                int flag = k > 0 ? 1 : 0;
                k = k > 0 ? k : (-k);
                while (k != 0)
                {
                    str = k % 2 + str;
                    k = k / 2;
                }
                int in = Integer.parseInt(str);
                if (flag == 1)
                {
                    str = String.format("%08d", in);
                } else
                {
                    str = "1" + String.format("%07d", in);
                }
    
                return str;
            }
        }
    
        public static String getReverse(String str)
        {
            String str2 = "";
            for (int i = 1; i < str.length(); i++)
            {
                if (str.charAt(i) == '1')
                {
                    str2 = str2 + "0";
                } else if (str.charAt(i) == '0')
                {
                    str2 = str2 + "1";
                }
            }
            return "1" + str2;
        }
    
        public static String getComplement(String str)
        {
            if ("11111111".equals(str))
                return "00000000";
            else
            {
                int index = 0;
                String str2 = "";
                int flag = (Integer.parseInt(str.charAt(7) + "") + 1) == 2 ? 1 : 0;// 1表示进位,0表示不用进位
                if (flag == 1)
                {
                    for (int i = str.length() - 1; i >= 0; i--)
                    {
                        if (flag == 1)// 需要进位的话 {
                        {
    
                            if (Integer.parseInt(str.charAt(i) + "") + 1 == 2)
                            {
                                str2 = "0" + str2;
                                flag = 1;
                            } else if (Integer.parseInt(str.charAt(i) + "") + 1 == 1)
                            {
                                str2 = "1" + str2;
                                index = i;
                                break;
                            }
                        }
    
                    }
                    str2 = str.substring(0, index) + str2;
    
                } else
                {
                    str2 = str.substring(0, 7) + "1";
                }
    
                return str2;
            }
        }
    }

    2.同名变量的pingbi原则

    输出结果

    3.

     byte(8),short(16),int(32), long(64) 浮点型: float(32), double(64)

    由精度较高向精度较低的数据类型转换无精度损失,由精度较低向精度较高的数据类型转换会损失精度

    4

    浮点数在计算机中的存储机制

    5 字符串拼接

  • 相关阅读:
    数据库操作
    用php输出心形曲线
    Hibernate入门(一)
    JavaScript中的三种弹窗
    java过滤器(过滤器排序)
    java过滤器(简化认证)
    Mysql中的外键分析(什么是外键,为什么要用外键,添加外键,主外键关联删除)
    java回调函数学习
    继承
    多态(一)
  • 原文地址:https://www.cnblogs.com/yanwenhui/p/11546511.html
Copyright © 2011-2022 走看看