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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

C语言中数据int的取值范围为多少?(Java中int的取值范围)

發布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 C语言中数据int的取值范围为多少?(Java中int的取值范围) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++中,int占用4字節,32比特,數據范圍為-2147483648~2147483647[-2^31~2^31-1]。

詳細解答過程,以兩個字節為例:

在C中,int型數據是一個有符號的整型數據,其最高位為符號位(0表示正,1表示負)。

1個字節等價于8個二進制位,在很多計算機系統中,通常采用補碼來表示帶符號的數(補碼系統)。

原碼:最高位為符號位(0表示正,1表示負),其他位按照一般的方法來表示數的絕對值。

反碼:對于一個帶符號的書來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。

補碼:正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。

兩個字節,所以,二進制原碼最大為0111 1111 1111 1111 = 2^15 - 1 = 32767。

最小為1111 1111 1111 1111 = - (2^15 - 1) = -32767。

原碼中0的表示有正負之分[+0]原 = 0000 0000 0000 0000;[-0]原 =1000 0000 0000 0000。

所以二進制原碼表示時,范圍是 -32767 ~ -0和0~32767,因為有兩個0,所以不同的數值個數一共有2^16 - 1個。

而計算機采用而進駐補碼存儲數據時,0的表示是唯一的:[+0] 補= [-0] 補= 0000 0000 0000 0000

此時正數編碼不變,從0000 0000 0000 0000 ~ 0111 1111 1111 1111依然表示0 ~ 32767。

負數表示需依照補碼規則,即-32767的補碼為1000 0000 0000 0001。

所以補碼中會比原碼多一個編碼出來,這個編碼就是1000 0000 0000 0000,因為任何一個原碼都不可能在轉化成補碼時變成1000 0000 0000 0000,所以人們規定1000 0000 0000 0000這個補碼編碼為-32768。

結論:int型數據占兩個字節時,可表示2^16種變化,最高位為符號位,所以正負有2^15中變化,因為0也占一種,因此正負數的最大值并不對稱,即該int型數據取值范圍為-32768 ~ 32767。

擴展資料:

int使用方法:

定義方法:

int i;//定義整形變量i

int i=1;//定義整形變量i并初始化為1

定義常量:

const int i;//編譯錯誤,因為常量需要給予一個初值

const int i=1;//定義常量i,值為1

Java定義常量:

final int i=1;//定義常量i,值為1

推薦教程:《C語言》

以上就是C語言中數據int的取值范圍為多少?的詳細內容,更多請關注風君子博客其它相關文章!

總結

以上是生活随笔為你收集整理的C语言中数据int的取值范围为多少?(Java中int的取值范围)的全部內容,希望文章能夠幫你解決所遇到的問題。

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