日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Java的小实验——各种测试以及说明

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的小实验——各种测试以及说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

日期:2018.10.07

星期五

博客期:014

?

一、Java中的位運算

代碼如下:

 1 package Morts107;
 2  
 3 public class Test107 {
 4     public static void main(String[] args) {
 5        int z;
 6        z = 13>>1;//00001101(13)----------------[右移1位]-------------->00000110(6)
 7        System.out.println(" z = "+z);
 8        z = 45>>2;//00101101(45)----------------[右移2位]-------------->00001011(11)
 9        System.out.println(" z = "+z);
10        z = 6<<1;//00000110(6)------------------[左移1位]-------------->00001100(12)
11        System.out.println(" z = "+z);
12        z = 11<<2;//00001011(11)----------------[右移2位]-------------->00101100(44)
13        System.out.println(" z = "+z);
14        z = -1>>2;//10...0000001(-1)----------------[左移1位]-------------->10...010(-2)
15        System.out.println(" z = "+z);
16     }
17 }

本程序實現了int類型數值的位運算,如代碼中的注釋一樣,計算機只能儲存1和0,所以說這些數都是二進制的!而二進制的13就是(…001101),讓它向右位移1位,自然就成了6(…00110),即13>>1==6成立,所以位運算就是這樣!<<和>>分別表示左移和右移,而右邊的操作數就是位置移動的數的大小!如11(…01011)左移2位,就是44(…0101100),即11<<2==44成立;這就相當于<<是這個數除以(2的后操作數次方)的結果,而>>就相當于是乘以(2的后操作數次方)的結果!而對于負數來說,它的第一位是1,所以負數最大也就是-1,-1/2也相當于-1!

正整數的原碼、反碼和補碼都一樣;

負數部分:

原碼和反碼的相互轉換:符號位不變,數值位按位取反

原碼和補碼的相互轉換:符號位不變,數值位按位取反,末位再加1

二、數據類型所占的位數

Byte ???? 1 字節?? (8bit)

Char ??? 2 字節?? (16bit)

Short????? 2 字節?? (16bit)

Int????????? 4字節??? (32bit)

Float????? 4字節??? (32bit)

Long????? 8字節??? (64bit)

Double?? 8字節??? (64bit)

說明了一個問題:取值范圍小的可以往取值范圍大的類型轉(浮點類型所表示范圍較大),在非浮點類型轉換到浮點類型時一定會失去一部分精度!

三、測試題目

結果如下:

?

結論:枚舉類型與String類不同,可以直接用==、!=來判斷關系!

掌握了!

四、運行代碼

結果如下:

?

不意外,因為float和double都是浮點類型,是不精確的!

五、實驗

#:以下代碼的輸出結果是什么?

????????????? int X=100;

????????????? int Y=200;

????????????? System.out.println("X+Y="+X+Y);

????????????? System.out.println(X+Y+"=X+Y");

@:

?

#:為什么會有這樣的輸出結果?

String類的+是相當于StringBuffer類中的append()函數,就是因為這個原因,System.out.println(”I love”+” China!”);實際上和System.out.println(“I love China!”);是一個效果,而在X和Y(兩個整形int的數據)相加時,自然是調用它們自己的加法函數了!)

轉載于:https://www.cnblogs.com/onepersonwholive/p/9751092.html

總結

以上是生活随笔為你收集整理的Java的小实验——各种测试以及说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。