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

      歡迎訪問 生活随笔!

      生活随笔

      當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

      java

      java int相除向上取整_Java基础篇——Java运算符

      發(fā)布時間:2023/12/15 java 29 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 java int相除向上取整_Java基础篇——Java运算符 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

      Java運(yùn)算符按功能可分為:算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符和條件運(yùn)算符。

      算數(shù)運(yùn)算符

      算術(shù)運(yùn)算符包括通常的加(+)、減(-)、乘(*)、除(/)、取模(%),完成整數(shù)型和浮點(diǎn)型數(shù)據(jù)的算術(shù)運(yùn)算。

      許多語言中的取模運(yùn)算只能用于整數(shù)型,Java對此做了擴(kuò)展,它允許對浮點(diǎn)數(shù)進(jìn)行取模操作。例如,3%2 的結(jié)果是 1, 15.2%5 的結(jié)果是 0.2。取模操作還可以用于負(fù)數(shù),結(jié)果的符號與第一個操作數(shù)的符號相同,例如,5%-3 的結(jié)果是 2,-5%3 的結(jié)果是-2。

      此外,算術(shù)運(yùn)算符還有“++”和“--”兩種,分別稱為加1和減1運(yùn)算符。這兩種運(yùn)算符有前綴形式和后綴形式,含有有所不同。例如,i++ 和 ++i 的執(zhí)行順序是不一樣的,i++ 在 i 使用之后再 +1,++i 在 i 使用之前先 +1。i-- 和 --i 的情況于此類似。

      關(guān)系運(yùn)算符

      關(guān)系運(yùn)算符用來比較兩個值,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6種。關(guān)系運(yùn)算符都是二元運(yùn)算符,也就是每個運(yùn)算符都帶有兩個操作數(shù),運(yùn)算的結(jié)果是一個邏輯值。Java允許“==”和“!=”兩種運(yùn)算符用于任何數(shù)據(jù)類型。例如,既可以判斷兩個數(shù)的值是否相等,也可以判斷對象或數(shù)組的實例是否相等。判斷實例時比較的是兩個對象在內(nèi)存中的引用地址是否相等。

      邏輯運(yùn)算符

      邏輯運(yùn)算符包括邏輯與(&&)、邏輯或(||)和邏輯非(!)。前兩個是二元運(yùn)算符,后一個是一元運(yùn)算符。Java對邏輯與和邏輯或提供“短路”功能,也就是在進(jìn)行運(yùn)算時,先計算運(yùn)算符左側(cè)的表達(dá)式的值,如果使用該值能得到整個表達(dá)式的值,則跳過運(yùn)算符右側(cè)表達(dá)式的計算,否則計算運(yùn)算符右側(cè)表達(dá)式,并得到整個表達(dá)式的值。

      位運(yùn)算符

      位運(yùn)算符用來對二進(jìn)制位進(jìn)行操作,包括按位取反(~)、按位與(&)、按位或(|)、異或(^)、右移(>>)、左移(<<)和無符號右移(>>>)。位運(yùn)算符只能對整數(shù)型和字符型數(shù)據(jù)進(jìn)行操作。

      1. 取反(~)

      參加運(yùn)算的一個數(shù)據(jù),按二進(jìn)制位進(jìn)行“取反”運(yùn)算。

      運(yùn)算規(guī)則:~1=0; ~0=1;

      即:對一個二進(jìn)制數(shù)按位取反,即將0變1,1變0。

      2. 按位與(&)

      參加運(yùn)算的兩個數(shù)據(jù),按二進(jìn)制位進(jìn)行“與”運(yùn)算。

      運(yùn)算規(guī)則:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:兩位同時為“1,結(jié)果才為“1,否則為0。

      例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3 & 5的值得1。

      3. 按位或(|)

      參加運(yùn)算的兩個對象,按二進(jìn)制位進(jìn)行“或”運(yùn)算。

      運(yùn)算規(guī)則:0 | 0=0; 0 | 1=1; 1 | 0=1; 1 | 1=1;

      即 :參加運(yùn)算的兩個對象只要有一個為1,其值為1。

      例如:3 | 5,即 0000 0011 | 0000 0101 = 0000 0111 因此,3 | 5的值得7。

      4. 異或(^)

      參加運(yùn)算的兩個數(shù)據(jù),按二進(jìn)制位進(jìn)行“異或”運(yùn)算。

      運(yùn)算規(guī)則:0^0=0; 0^1=1; 1^0=1; 1^1=0;

      即:參加運(yùn)算的兩個對象,如果兩個相應(yīng)位為“異”(值不同),則該位結(jié)果為1,否則為0。

      5. 左移(<<)

      運(yùn)算規(guī)則:按二進(jìn)制形式把所有的數(shù)字向左移動對應(yīng)的位數(shù),高位移出(舍棄),低位的空位補(bǔ)零。例如: 12345 << 1,則是將數(shù)字12345左移1位:

      位移后十進(jìn)制數(shù)值變成:24690,剛好是12345的二倍,所以有些人會用左位移運(yùn)算符代替乘2的操作,但是這并不代表是真的就是乘以2,很多時候,我們可以這樣使用,但是一定要知道,位移運(yùn)算符很多時候可以代替乘2操作,但是這個并不代表兩者是一樣的。

      思考一下:如果任意一個十進(jìn)制的數(shù)左位移32位,右邊補(bǔ)位32個0,十進(jìn)制豈不是都是0了?當(dāng)然不是!!! 當(dāng)int 類型的數(shù)據(jù)進(jìn)行左移的時候,當(dāng)左移的位數(shù)大于等于32位的時候,位數(shù)會先求余數(shù),然后再進(jìn)行左移,也就是說,如果真的左移32位 12345 << 32 的時候,會先進(jìn)行位數(shù)求余數(shù),即為 12345<<(32%32) 相當(dāng)于 12345<< 0 ,所以12345<< 33 的值和12345<<1 是一樣的,都是 24690。

      6. 右移(>>)

      同樣,還是以12345這個數(shù)值為例,12345右移1位: 12345>>1。

      右移后得到的值為 6172 和int 類型的數(shù)據(jù)12345除以2取整所得的值一樣,所以有些時候也會被用來替代除2操作。另外,對于超過32位的位移,和左移運(yùn)算符一樣,,會先進(jìn)行位數(shù)求余數(shù)。

      7. 無符號右移(>>>)

      無符號右移運(yùn)算符和右移運(yùn)算符是一樣的,不過無符號右移運(yùn)算符在右移的時候是補(bǔ)0的,而右移運(yùn)算符是補(bǔ)符號位的。以下是-12345二進(jìn)制表示:

      對于源碼、反碼、補(bǔ)碼不熟悉的同學(xué),請自行學(xué)習(xí),這里就不再進(jìn)行補(bǔ)充了講解了,這里提醒一下,在右移運(yùn)算符中,右移后補(bǔ)0,是由于正數(shù) 12345 符號位為0 ,如果為1,則應(yīng)補(bǔ)1。

      1、原碼、反碼和補(bǔ)碼說明:
      一個數(shù)可以分成符號位(0正1負(fù))+ 真值,原碼是我們正常想法寫出來的二進(jìn)制。由于計算機(jī)只能做加法,負(fù)數(shù)用單純的二進(jìn)制原碼書寫會出錯,于是大家發(fā)明了反碼(正數(shù)不變,負(fù)數(shù)符號位不變,真值部分取反);再后來由于+0, -0的爭端,于是改進(jìn)反碼,變成補(bǔ)碼(正數(shù)不變,負(fù)數(shù)符號位不變,真值部分取反,然后+1)。二進(jìn)制前面的0都可以省略,所以總結(jié)來說:計算機(jī)里的負(fù)數(shù)都是用補(bǔ)碼(符號位1,真值部分取反+1)表示的。2、位運(yùn)算符和2的關(guān)系
      位運(yùn)算符和乘2、除2在大多數(shù)時候是很相似的,可以進(jìn)行替代,同時效率也會高的多,但是兩者切記不能混淆 ;很多時候有人會把兩者的概念混淆,尤其是數(shù)據(jù)剛好是 2、4、6、8、100等偶數(shù)的時候,看起來就更相似了,但是對于奇數(shù),如本文使用的12345 ,右移之后結(jié)果為6172 ,這個結(jié)果就和數(shù)學(xué)意義上的除以2不同了,不過對于int 類型的數(shù)據(jù),除2 會對結(jié)果進(jìn)行取整,所以結(jié)果也是6172 ,這就更有迷惑性了。

      賦值運(yùn)算符

      賦值運(yùn)算符的作用就是將常量、變量或表達(dá)式的值賦給某一個變量。

      除了“=”,其它的都是特殊的賦值運(yùn)算符,以“+=”為例,x += 3就相當(dāng)于x = x + 3,首先會進(jìn)行加法運(yùn)算x+3,再將運(yùn)算結(jié)果賦值給變量x。-=、*=、/=、%=賦值運(yùn)算符都可依此類推。

      條件運(yùn)算符

      條件運(yùn)算符( ? : )也稱為 “三元運(yùn)算符”或“三目運(yùn)算符”。

      語法形式:布爾表達(dá)式 ? 表達(dá)式1 :表達(dá)式2。

      運(yùn)算過程:如果布爾表達(dá)式的值為 true ,則返回 表達(dá)式1 的值,否則返回 表達(dá)式2 的值。

      運(yùn)算符的優(yōu)先次序

      在對一個表達(dá)式進(jìn)行計算時,如果表達(dá)式中含有多種運(yùn)算符,則要安運(yùn)算符的優(yōu)先次序一次從高向低進(jìn)行。運(yùn)算符的優(yōu)先次序如下:

      總結(jié)

      以上是生活随笔為你收集整理的java int相除向上取整_Java基础篇——Java运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。