程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> [javaSE] 類型轉換(1加1等於幾),javase等於

[javaSE] 類型轉換(1加1等於幾),javase等於

編輯:JAVA綜合教程

[javaSE] 類型轉換(1加1等於幾),javase等於


 

打印 ‘a’+1,輸出98,解釋:’a’是char類型占2個8bit,1是int類型占4個,’a’字符會被自動強制轉換為int類型對應ascii碼表97

 

打印’1’+1,輸出 50,解釋:’1’是char類型,會被自動類型提升為int類型,對應ascii表49

 

 

定義byte b=3

b=b+2

此時會編譯報錯,可能損失精度,byte b在內存中默認是占一個8bit,int 2在內存中默認是占4個8bit,不同類型不能計算,必須自動類型提升轉換,小的往大的提升,byte b會往int類型提升,此時可以計算,計算結果是4個8bit,結果從新賦值給byte b的時候,會損失精度

 

強制類型轉換

上面的代碼修改成 b=(byte)(b+2),此時就不會報錯了,int類型強制轉換為byte

public class VariableDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println('a' + 1);// 輸出 98
        System.out.println('1' + 1);// 輸出 50
    }

}

 

 

PHP版:

PHP中是弱類型語言,打印 ‘1’+1會輸出 2,String類型’1’被自動轉成了int類型

強轉只有這些 (int)  (bool)  (float)  (string)  (array) (object)

<?php
class VariableDemo{
    public static function main(){
        var_dump('a'+1);//輸出 int(1)
        var_dump((int)'1');//輸出 int(1)
        var_dump((bool)'1');//輸出 bool(true)
        var_dump((array)'1');//輸出 array(1) { [0]=> string(1) "1" }
        var_dump((object)'1');//輸出 object(stdClass)#1 (1) { ["scalar"]=> string(1) "1" }

    }
}

VariableDemo::main();

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved