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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

廖雪峰Java1-2Java程序基础-3整数运算

發布時間:2025/7/14 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 廖雪峰Java1-2Java程序基础-3整数运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.四則運算規則

int i =(100 + 200) * (99 -88);//3300int n = i + 9;//3309//除法結果為整數int q = n / 100;//33//除數為0時運行將報錯int x = n / 0;//拋出異常:Exception in thread "main" java.lang.ArithmeticException: / by zero

1.2.++運算和--運算

i++是先訪問i然后再自增,而i++則是先自增然后再訪問i的值

int i = 0;int a = i++;int b = ++i;System.out.println(a);//0System.out.println(b);//2

1.3.簡寫的+=和-=

//取示例1中的n的值n += 100;//3409n -= 100;//3309//取余運算符%int m = n % 100;//9

1.4整數運算運算規則

  • 計算結果溢出不報錯
  • 計算結果是不正確的
    解決方法:用范圍更大的整型。
int i = Integer.MAX_VALUE;System.out.println(i);int x = i + 1;System.out.println(x);long y = (long)i + 1;System.out.println(y);

2.移位運算

  • 左移 <<
  • 右移 >>
  • 不帶符號右移 >>>
  • byte和short會先轉換為int再進行移位
int n1 = 5;String s1 = Integer.toBinaryString(5);System.out.println("5的二進制:"+s1);System.out.println();int n2 = n1 << 10;//左移10位,在后面加10個0String s2 = s1 + "0000000000";//字符串加10個0,得到二進制字符串System.out.println(s1+"~對字符串左移10位~"+s2+"\t轉化為10進制數:"+Integer.parseInt(s2,2));System.out.println("直接左移10位:n2="+n2);System.out.println();int n3 = n2 >> 11;//右移11位,去掉11個0String s3 = "10";//s2=1010000000000去掉后面的11位數System.out.println(s2+"~右移10位~"+s3+"\t"+Integer.parseInt(s3,2));System.out.println("直接右移11位:n3="+n3);System.out.println();int n4 = n1 << 29;//最高位是符號,1表示符號,0表示整數System.out.println(n1+"直接左移29位:"+n4);System.out.println();int n5 = n4 >> 29;//保留符號位右移String s5 = "10";//s2=1010000000000去掉后面的11位數System.out.println(n4+"直接右移29位:"+n5);System.out.println();int n6 = n4 >>> 29;//無條件右移System.out.println(n4+"無條件右移11位:"+n6);

3.位運算

通常2個整數進行位運算,首先按位對齊,依次對每一位進行進行位運算。

3.1位運算 與運算& 2個都為1,結果為1

  • 1 & 1 = 1, 1 & 0 = 0, 0 & 1 = 0,0 & 0 = 0

3.2或運算| 有1個為1,結果為1

  • 1 | 1 = 1, 1 | 0 = 0, 0 | 1 = 0,0 | 0 = 0

3.3亦或運算^不相同結果為1

  • 1 ^ 1 = 0, 1 ^ 0 = 1, 0 ^ 1 = 1,0 | 0 = 0

3.4非運算~

  • ~ 1 = 0, ~ 0 = 1
int n1 = 0x03_83_d0_25;int n2 = 0x00_00_ff_ff;int n3 = n1 & n2;int n4 = n1 | n2;System.out.println(n3);System.out.println(n4);System.out.println(Integer.toBinaryString(n1));System.out.println(Integer.toBinaryString(n2));System.out.println("n1&n2:"+Integer.toBinaryString(n3));System.out.println("n1|n2:"+Integer.toBinaryString(n4));


具體過程參看下圖

4.運算優先級


記不住沒關系,直接加括號就是

5.類型自動提升與強制轉型

  • 在運算過程中,計算結果為較大類型的整型
  • 可以將結果強制轉型:(類型)變量或數值。
  • 強制轉型可能丟失精度。long類型是64位,強制轉為int類型,會將高位拋棄。
short s = 12;int i = 100 +s;long n = 999 * i;//int x = n - 199;//編譯錯誤int y1 = (int)(n - 199);int y2 = (int)n - 199;int z = (int)(n * 100000000);System.out.println(y1);//111689System.out.println(y2);//111689System.out.println(z);//410193920

6.總結:

  • 整數運算結果永遠精確
  • 運算結果會自動提升
  • 可以強制轉型,但可能丟失精度
  • 選擇合適范圍的整型(int, long)

轉載于:https://www.cnblogs.com/csj2018/p/10242045.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的廖雪峰Java1-2Java程序基础-3整数运算的全部內容,希望文章能夠幫你解決所遇到的問題。

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