• 5#关于数据数值的转换


    数据类型转换https://github.com/DuGuQiuBai/Java/blob/master/day02/code/05_%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2/DataTypeDemo3.java

     1 /*
     2     +:做加法操作
     3         A:针对数据操作
     4         B:针对字符进行做+
     5             ASCII码表
     6                 '0'    48
     7                 'A'    65
     8                 'a'    97
     9         C:针对字符串进行做+
    10             在字符串的操作中,叫字符串连接符
    11 */
    12 class DataTypeDemo3 {
    13     public static void main(String[] args) {
    14         System.out.println('a');
    15         System.out.println('a'+1);
    16         System.out.println('A'+0);
    17         System.out.println('0'+0);
    18         System.out.println("-----------");
    19 
    20 
    21         System.out.println('a'+'b');
    22         System.out.println("a"+"b");
    23         
    24         System.out.println("hello"+'a'+1); //左边字符串,往后拼的都是字符串
    25         System.out.println('a'+1+"hello");
    26         System.out.println("5+5="+5+5);
    27         System.out.println(5+5+"=5+5");
    28     }
    29 }

    强制类型转换带来的问题https://github.com/DuGuQiuBai/Java/blob/master/day02/code/05_%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2/DataTypeTest2.java

     1 /*
     2     byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
     3 */
     4 class DataTypeTest2 {
     5     public static void main(String[] args) {
     6         //byte b = 130;
     7 
     8         //解决方案
     9         //方案1
    10         //int a  = 130;
    11     
    12         //方案2
    13         byte b = (byte) 130;
    14         System.out.println(b);
    15     }
    16 }
    17 
    18 /*
    19     十进制:130
    20     A:第一步,先把十进制转换为二进制
    21         二进制:000000000 000000000 000000000 100000010
    22         由于此二进制是一个正数,所以,补码也是000000000 000000000 000000000 100000010。
    23     B:做强制类型转换
    24         二进制:000000000 000000000 000000000 100000010
    25         截取后就变成了:100000010
    26     C:操作后的数据是补码,你看到的是原码
    27                 符号位        数值位
    28         补码:    1            00000010
    29         反码:    1            00000001
    30         原码:    1            11111110

     赋值操作符https://github.com/DuGuQiuBai/Java/blob/master/day02/code/07_%E8%B5%8B%E5%80%BC%E8%BF%90%E7%AE%97%E7%AC%A6/OperatorTest.java

     1 /*
     2     面试题:
     3         short s=1, s = s+1; short s=1, s+=1;
     4         上面两个代码有没有问题,如果有,那里有问题
     5 */
     6 class OperatorTest {
     7     public static void main(String[] args) {
     8         //short s = 1;
     9         //s = s + 1; 
    10         //有问题,可能损失精度
    11         
    12         short s = 1;
    13         s += 1; //s = s + 1;
    14         //这个是没有问题的。
    15         //因为这个式子等价于:
    16         // s = (s的数据类型)(s + 1);
    17     }
    18 }
  • 相关阅读:
    JavaEE高级-JPA学习笔记
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/10732066.html
Copyright © 2020-2023  润新知