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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

java

java中整数如何表示,在Java中如何在位级别上内部表示整数?

發(fā)布時(shí)間:2023/12/1 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中整数如何表示,在Java中如何在位级别上内部表示整数? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

慕瓜9086354

Java整數(shù)為32位,并且總是帶符號(hào)的。這意味著,最高有效位(MSB)用作符號(hào)位。用an表示的整數(shù)int不過(guò)是位的加權(quán)和。權(quán)重分配如下:Bit#? ? Weight31? ? ? -2^3130? ? ? ?2^3029? ? ? ?2^29...? ? ? ...2? ? ? ? 2^21? ? ? ? 2^10? ? ? ? 2^0請(qǐng)注意,MSB的權(quán)數(shù)為負(fù)(實(shí)際上最大可能為負(fù)),因此,當(dāng)該位打開(kāi)時(shí),整數(shù)(加權(quán)和)將為負(fù)。讓我們用4位數(shù)字對(duì)其進(jìn)行仿真:Binary? ? Weighted sum? ? ? ? ? ? Integer value0000? ? ? ?0 + 0 + 0 + 0? ? ? ? ? ?00001? ? ? ?0 + 0 + 0 + 2^0? ? ? ? ?10010? ? ? ?0 + 0 + 2^1 + 0? ? ? ? ?20011? ? ? ?0 + 0 + 2^1 + 2^0? ? ? ?30100? ? ? ?0 + 2^2 + 0 + 0? ? ? ? ?40101? ? ? ?0 + 2^2 + 0 + 2^0? ? ? ?50110? ? ? ?0 + 2^2 + 2^1 + 0? ? ? ?60111? ? ? ?0 + 2^2 + 2^1 + 2^0? ? ?7 -> the most positive value1000? ? ? -2^3 + 0 + 0 + 0? ? ? ? -8 -> the most negative value1001? ? ? -2^3 + 0 + 0 + 2^0? ? ? -71010? ? ? -2^3 + 0 + 2^1 + 0? ? ? -61011? ? ? -2^3 + 0 + 2^1 + 2^0? ? -51100? ? ? -2^3 + 2^2 + 0 + 0? ? ? -41101? ? ? -2^3 + 2^2 + 0 + 2^0? ? -31110? ? ? -2^3 + 2^2 + 2^1 + 0? ? -21111? ? ? -2^3 + 2^2 + 2^1 + 2^0? -1因此,二進(jìn)制補(bǔ)碼不是表示負(fù)整數(shù)的排他方案,而是可以說(shuō)整數(shù)的二進(jìn)制表示始終相同,我們只是忽略了最高有效位的權(quán)重。該位確定整數(shù)的符號(hào)。在C中,有一個(gè)關(guān)鍵字unsigned(在Java中不可用),可用于聲明unsigned int x;。在無(wú)符號(hào)整數(shù)中,MSB的權(quán)重為正(2^31),而不為負(fù)。在這種情況下,an的范圍unsigned int是0to 2^32 - 1,而an的int范圍是-2^31to 2^31 - 1。從另一個(gè)角度來(lái)看,如果您考慮xas 的二的補(bǔ)碼~x + 1(NOT x加一),則說(shuō)明如下:對(duì)于任何x,~x都只是的按位倒數(shù)x,因此,凡是x帶有1-bit的位置,~x都將帶有0-bit的位置(反之亦然)。因此,如果將它們加起來(lái),則加法運(yùn)算中將不會(huì)有進(jìn)位,并且總和將只是一個(gè)整數(shù),其每一位均為1。對(duì)于32位整數(shù):x + ~x = 1111 1111 1111 1111 1111 1111 1111 1111x + ~x + 1 =? ?1111 1111 1111 1111 1111 1111 1111 1111 + 1? ? ? ? ? ?= 1 0000 0000 0000 0000 0000 0000 0000 0000最左邊的1位將被丟棄,因?yàn)樗贿m合32位(整數(shù)溢出)。所以,x + ~x + 1 = 0-x = ~x + 1因此,您可以看到負(fù)數(shù)x可以由表示~x + 1,我們稱(chēng)它們?yōu)榈难a(bǔ)數(shù)x。

總結(jié)

以上是生活随笔為你收集整理的java中整数如何表示,在Java中如何在位级别上内部表示整数?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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