1樓:聽不清啊
在不同的抄c系統中,int有不同的表示範圍。
32位(4位元組)的int,它可以表示的數字範圍是-2147483648~+ 2147483647,共可表示4294967296個不同的數。
這是因為它有點像我們用(每個檔位上只可以表示0~9)的算盤。假如我們的乙個算盤有4個檔位,它能表示從0~9999共10000個不同的數字。當我們要把比9999更大的數字存放到算盤上時,走出的部分就「丟失」了。
如果要存的數字是12345,按「老規矩」存放完畢後,讀取算盤上的數字時,由於資料發生了丟失,只能讀到2345。這是由於12345-10000=2345。
再來看計算機裡的int,如果我們要把2147483648存入到int變數中時,由於超出了範圍,就發生了丟失。讀取時,就變成了2147483648-4294967296=-2147483648了。
其它更大的數字,所變成的負數大小,也是這樣的規律(都是減去了4294967296或它的倍)。
2樓:玩尼丶瑪
int 型只可以表示來 —36768到+32767 這其實是一自
個邏輯圈,意思就是說如果該數超過了最大表示範圍那麼就從頭開始,舉個例子吧 ,如 +32788超過了最大表示範圍,比最大表示範圍多1,那麼該數其實就是-32768
c語言中把unsigned char 型資料賦值給int 型資料會不會出問題
3樓:匿名使用者
不會有問題, 反正char的數值再大也不會讓int變成負數,
我不記得這樣賦值有沒有自動的int到unsigned int的公升格,
不過肯定不會出問題就是了
4樓:匿名使用者
直接賦bai值會有du
問題。最zhi
好是顯式轉dao換。內
#include
using namespace std;
int main()
5樓:沉思的跳跳虎
這個問題,因為不來知道你具體的使用環源境,沒法作出進一步的判斷,只能將 unsigned char型的變數賦給乙個int型的變數會發生什麼事情告訴你。
unsigned char a = 'a';
int b = -1666666;
b = a;
由於unsigned char型別的變數只有乙個位元組,而int型別有4個位元組,當將乙個unsigned char型別的變數賦給乙個int型的變數後,會使int型變數的高三個位元組全部清零。在上述例項中就是b的高三個位元組全部變為0。也就是說b永遠為正整數了。
細節就是這樣了,至於會不會產生***,視你的使用環境而定了。
6樓:
直接賦值,不會有任何問題
7樓:孤獨
強制轉換一下看看,不懂c語言
c語言中將乙個浮點型賦值給整型時,會不會四捨五入?
8樓:幻翼高達
c語言中將乙個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。
將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:
賦值時的型別轉換實際上是強制的。
例如執行賦值後,無論5.4還是5.6都會變成5。
9樓:_夢幻陽光
不會的,不過可以寫乙個函式自己轉換啊
#include
int fun(float x)
int main()
列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現
10樓:匿名使用者
不會的,如int x; 如果有 x=4.78; 則x的值是4
11樓:匿名使用者
不會,後面的小數就直接沒了,只有整數部分了
採納我哦
12樓:匿名使用者
不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?
13樓:龍__鳳
不會的,看程式的執行結果:
14樓:路過
你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。
希望能夠幫到你。
15樓:匿名使用者
不會,一般是給你強轉成整形了,小數字就沒了,四捨五入是不存在的
16樓:匿名使用者
不會,只會把整數部分賦給整型變數
17樓:匿名使用者
不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入
關於c語言中long 型資料賦給int 型變數
18樓:匿名使用者
區分編譯器型別,long資料賦值給int資料會有不同的結果。
1 16位編譯器:
int型變數佔2位元組,long型別變數佔4位元組。當long賦值給int時,會擷取低兩位元組資料給int。
如long a = 0x12345678;
int b = a;
則b的值為0x5678。
2 32位編譯器:
int和long都是佔4位元組,所以二者賦值不會有任何改變。
3 64位編譯器:
int佔4位元組,long佔8位元組。當long賦值給int時,會擷取低四位元組資料給int。
19樓:匿名使用者
long好像是64位,int是32位,在記憶體中的表示是:低位在左,高位在右。long的65536的十六進製制00010000h,分高低位在記憶體中放的位置為0000 0001,賦值給int時,只擷取前面部分的0000,所以就是值就是為0了
c語言整型數賦值給浮點型的問題,c語言中將乙個浮點型賦值給整型時,會不會四捨五入?
b a 2 是這麼計算的 a是整型變數,2也是,因此計算被當成整型計算,得到整型結果0,然後發內現b是float型的,再將整容型結果0進行資料型別轉換賦值給b。因此應當將a 2算式中分子或分母轉換成float型就能正確計算了,比如 b float a 2 或b a 2.0 或b a b 2 c語言中...
C語言中給浮點數賦值問題c語言中將乙個浮點型賦值給整型時,會不會四捨五入?
float d 0.5 這叫宣告和初始化。願意寫 float d 0.5f 也可以。常數 0.5 預設 處理成 double 型。0.5f 規定 它 是 float 型.其實這不是什麼大問題。相對c語言中別的問題,這個可以完全忽略。float d 這叫宣告。d 0.5 這叫賦值語句。如果你前面有過 ...
C語言賦值運算子,在C語言中11種賦值運算子的具體含義,用法
你宣告為 無符來號char,則運算會按無符號源處bai理。你宣告為有符號duchar,則運算會按有符號處zhi理。例如 unsigned char c char d c 376 d 376 printf c d d d n c,d 列印出 daoc 254 d 2 定義的意思是說這是無符號數,它可以...