請問c語言中,unsigned int型別變數可以賦給int

2021-05-23 04:30:28 字數 2879 閱讀 7869

1樓:

可以賦值,正數無所謂,負數會有符號位的問題,賦值後會和原來不一樣,是因為負數在系統中是用補碼的形式存放的

2樓:我唯一愛靈兒

這個可能會出現問題哦,只要數值不是大於2的七次方就不會出現任何問題,如果超過了,編譯器就會報錯說你放的數太大了。

3樓:匿名使用者

unsigned int可以賦值給int,加強制型別轉換。有溢位問題

4樓:摔過坑過丶不哭

有可能 比如int只可以裝65535但是 前面的資料遠比這個大int裝不了

c語言中把unsigned char 型資料賦值給int 型資料會不會出問題

5樓:匿名使用者

不會有問題, 反正char的數值再大也不會讓int變成負數,

我不記得這樣賦值有沒有自動的int到unsigned int的升格,

不過肯定不會出問題就是了

6樓:匿名使用者

直接賦bai值會有du

問題。最zhi

好是顯式轉dao換。內

#include

using namespace std;

int main()

7樓:沉思的跳跳虎

這個問題,因為不來知道你具體的使用環源境,沒法作出進一步的判斷,只能將 unsigned char型的變數賦給一個int型的變數會發生什麼事情告訴你。

unsigned char a = 'a';

int b = -1666666;

b = a;

由於unsigned char型別的變數只有一個位元組,而int型別有4個位元組,當將一個unsigned char型別的變數賦給一個int型的變數後,會使int型變數的高三個位元組全部清零。在上述例項中就是b的高三個位元組全部變為0。也就是說b永遠為正整數了。

細節就是這樣了,至於會不會產生***,視你的使用環境而定了。

8樓:

直接賦值,不會有任何問題

9樓:孤獨

強制轉換一下看看,不懂c語言

c語言中,unsigned int型資料的取值範圍是???

10樓:哇哎西西

^0到65535。

如果是2個位元組的int(其實就是signedint,signed預設罷了)

一個位元組8位,兩個位元組就是16位,一位做符號位內,那麼取值範圍:容-2^15到2^15-1,即-32768到32767。

具體用法如下:

unsigned a;

a=5;

或:unsigned int a;

a=5;

16位系統中一個int能儲存的資料的範圍為-32768~32767,而unsigned int能儲存的資料範圍則是0~65535,在計算機中,整數是以補碼形式存放的。

11樓:匿名使用者

哎,看著這些c語言資料型別真是懷念啊,我曾經自學過c語言,但是學到指標苦於無人指點就放棄了,我也曾編寫過一些程式。樓主好好學吧。精神上支援你 ,zbyzya

12樓:匿名使用者

c語言沒有規定整來形的長度。這根我自們使bai用的系統有關的du。早期的16為機器int型別佔2個位元組zhi,後來

dao的32位int佔4個位元組。既然無符號所以所有的二進位制位都用來表示數字。

16位表示的範圍是0-2^16

32位表示的範圍是0-2^32位

考試的時候推薦先看看題目有沒有給定長度,沒有就寫16位的吧

c語言中int型的數超出範圍會是怎樣的?

13樓:匿名使用者

從c語言的內bai

部處理機制來說du,int型數超出zhi範圍(溢位)被認為是一個正

dao常現象,只會產生錯誤的內計算結果或邏輯錯容誤,而不會觸發資料溢位的異常。因此,為了避免因為整數溢位而產生程式邏輯或計算錯誤,程式設計師必須自行檢測可能出現的溢位或者確保不會出現資料溢位的情況。

c語言對於int型別資料超出範圍的處理,只有一個最簡單的原則:截斷處理,即超出int位長度範圍的高位元組被自動截掉。

比如,假設int長度為16位的情況下,以下**:

int a=0x77ffffl; /* 由於超出範圍,高位的77將被自動截掉,實際的a將會等於0xffff */

++a; /* a自增後,將超出範圍,高位的1被截掉,實際a=0 */

14樓:南北浮生

c語言中int的取

抄值範圍

為:-2147483648 ~ 2147483647。超過襲了這個bai範圍進行賦值,c源**是無du法通過編譯的。

下面給出zhi簡dao單的測試**:

# include

int main(void)

可以看到編譯器提示這個定義型別的賦值太大了,導致無法編譯成功。

c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

原因:總位數位32位,符號位佔用1位,且每一位只能表示兩種狀態。int數值位最大隻允許31位 = 32 - 符號位 ,所以說:

2的31次方 = 2147483648得出了int函式的最大取值範圍。

參考資料

15樓:匿名使用者

如圖所示的兩種情況,會被截斷,不會影響其它的變數:(將數轉為2進位制要高32位,後邊的仍掉)

c語言中for迴圈怎麼理解C語言中for迴圈怎麼理解?

for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈一般形式為 for 單次表示式 條件表示式 末尾迴圈體 執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號 可以省略,執行完中間迴圈體後接著執行末尾迴圈體 執行末尾迴...

C語言中printfn,C語言中printfnn是什麼意思

6d中 是格式符引導符 d表示是整型資料 其中的6表示最小寬度是6個字元 表示靠左對齊。意思 列印輸出內容 input 然後換行。游標移動到下一行。n 轉義字元。換行的意思。數字或字元。成為為一個字元,即轉義字元。c語言中n 1是什麼意思 n 1中的n指的是每工作1年支付1個月工資的經濟補償。所謂的...

C語言中taiaiaj,C語言中taiaiajajt代表什麼意思啊謝謝了

a是一個指標,a i表示a所指位置的下i個記憶體區,a j同理。這個程式的功能是 交換 a i 和 a j 所指記憶體內區的內容,容t是中間變數。就好像你要交換兩瓶飲料,一瓶汽水,一瓶果汁,交換它們,要找一個空瓶子,這裡,t就是空瓶子 a i 和 a j 就是你要交換的兩瓶飲料,一共要倒三次,你懂了...