Java 기본 데이터 유형 간 변환

3090 단어 Java 기반
우리는 평소에 개발 과정에서 서로 다른 유형이 직접적으로 서로 전환되는 상황을 처리하고 그들의 관계를 깊이 있게 이해하는 것이 매우 중요하다.저희가 일단 byte 장르를 예로 들자면...

public class DataTypeChangeTest {
   private static byte byteV;
    private static short shortV;
    private static int intV;
    private static long longV;
    private static float floatV;
    private static double doubleV;
    private static boolean booleanV;
    private static char charV;
    static {
        byteV=120;
        shortV=200;
        intV=-40000;
        longV=System.currentTimeMillis();
         floatV=311.22222F;
         doubleV=311.111777111777111D;
         booleanV=false;
         charV='d';
    }

    public static void main(String[] args) {
        testByte();


    }

    /**
     *          byte      
     * 1.byte         short int long float double
     * 2. byte      char         
     * 3. byte       boolean
     * 4. short int long float double float char    byte               
     * 5. short int long float double float char    byte       -128 ~127    
     *               256    
     *                           8                1      (  +1)
     */
    private static void testByte() {
        short shortVV=byteV;
        System.out.println(String.format("byte     short:%s,%s",byteV,shortVV));
        int intVV=byteV;
        System.out.println(String.format("byte     int:%s,%s",byteV,intVV));
        long longVV=byteV;
        System.out.println(String.format("byte     long:%s,%s",byteV,longVV));
        float floatVV=byteV;
        System.out.println(String.format("byte     float:%s,%s",byteV,floatVV));
        double doubleVV=byteV;
        System.out.println(String.format("byte     double:%s,%s",byteV,doubleVV));
        char charVV= (char) byteV;
        System.out.println(String.format("byte     char:%s,%s",byteV,charVV));

        byte byteV1= (byte) shortV;
        System.out.println(String.format("short     byte:%s,%s",shortV,byteV1));
        byte byteV2= (byte) intV;
        System.out.println(String.format("int     byte:%s,%s",intV,byteV2));
        byte byteV3= (byte) longV;
        System.out.println(String.format("long     byte:%s,%s",longV,byteV3));
        byte byteV4= (byte) floatV;
        System.out.println(String.format("float     byte:%s,%s",floatV,byteV4));
        byte byteV5= (byte) doubleV;
        System.out.println(String.format("double     byte:%s,%s",doubleV,byteV5));
        byte byteV6= (byte) charV;
        System.out.println(String.format("char     byte:%s,%s",charV,byteV6));
        //        boolean ag=a;
    }
}

이제 요약해 보겠습니다.
  • 1.사용 바이트가 적은 유형은 바이트가 많은 유형으로 직접 변환할 수 있음
  • 2.정수 형식 부동점수 형식은boolean 형식으로 변환할 수 없습니다
  • 3.사용 바이트가 높은 유형에서 사용 바이트가 적은 유형으로 변환하려면 강제 변환이 필요하며 정밀도를 잃어버릴 수 있음
  • 4.점용 바이트가 높은 유형을 점용 바이트가 적은 유형으로 바꾸면 정밀도를 잃어버리고, 변환된 값은 원래의 값과 새로운 유형의 수치 범위의 정수 배를 더하거나 뺀다
  • 물론 가장 정확한 것은 10진법을 2진법으로 바꾸는 것이다. 만약에 2진법이 낮은 바이트 형식의 자릿수를 초과하면 마지막 자릿수를 절취한다.byte를 예로 들면 마지막 8진법이다. 만약에 1로 시작하면 인코딩을 해야 한다
  • 좋은 웹페이지 즐겨찾기