dong手dong脑

Posted yanwenhui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dong手dong脑相关的知识,希望对你有一定的参考价值。

 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 字符串拼接

技术图片

 

以上是关于dong手dong脑的主要内容,如果未能解决你的问题,请参考以下文章

linux 内核---------董昊 ( Robin Dong ) and OenHan

WC2018 滚粗记

喝最烈的酒挖最大的DONG——工具与技巧篇

春季7天假,7部越南电影陪你过年之一:《旗袍》Ao lua Ha Dong

Linux命令用法

VIM扩展命令模式