1樓:匿名使用者
int a;
char b;
a=24;
b=a;
沒有問題,編譯的時候會有warning ,但是要注意char 、int 的數值範圍;
a = 3.2 賦值後,a的值將變成3;浮點型專轉為整型,小數屬部分會被舍掉
2樓:匿名使用者
int和char是相通的,兩者之間可相互賦值,按上述**,b對應的是一個控制字元cancel
如果把浮點型資料賦值給整型變數,結果會直接取其整數部分,如上述**,結果a=3
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語言,int賦值給char
8樓:馮老師(必果學院
可以按照下面**示意的內容操作,即可完成賦值:
char c[4];
int i=100;
*(int*)c = i;
也可以使用memcpy,示回意**如下答:
memcpy(c,&i,sizeof(i));
推薦使用第一種方法,這樣當要將值回傳的時候,只需要按照下面的操作即可i = *(int*)c;
靈活使用指標型別轉換,可以極大的簡化程式**,這個問題即是一個好例子
9樓:匿名使用者
如jackielau1980所說,來char是自1 byte,int是4 bytes,而不是bit,1 byte = 8 bits
你拷貝的**就一點bai問題,memcpy(c, &i, 4);
這樣你du應該就看出zhi問題了。
***************===
反過來也是dao一樣,只要i是用地址就行了,可以成功的
10樓:匿名使用者
如果一個char 負數如-1在計算機中**為1111 1111,那麼把他賦值給int 型將b的4位元組存版儲權單元清零,igmbli
11樓:匿名使用者
強制型別轉換就行了 char c;
c=(char)i;
就這樣可以了,不過輸出來的就是100所對應的ascii碼上的字元,也就是字母d;
12樓:匿名使用者
老大memcpy(c,i,4);
這樣怎麼都不對吧
memcpy引數是目標指標,**指標,資料大小.那個int的是變數又不是指標......
13樓:匿名使用者
int是佔4位元組(byte),不知bit
用笨辦法:
c[0] = (char)i>>24;
c[1] = (char)i>>16;
c[2] = (char)i>>8;
c[3] = (char)i;
14樓:匿名使用者
我試了試,可能錯在引用了系統的記憶體地址。
15樓:超級炒飯
用指標 搞定
void main()
16樓:匿名使用者
可以進行強制型別轉換。
c語言中,怎樣把內容為數字的char轉換為int?
17樓:盍荷孛友靈
本質上char型別和int其實是同一種型別。。。都代表了整數型大小,轉換的話,在前面加上強制轉換符就好了,如int()之類的
18樓:匿名使用者
內容為數復字的char,包含
0,1,2,3,4,5,6,7,8,9
共計10個字元
制。這十個字元在bai存為字元型時,其儲存du值為對應的ascii碼,而這
zhi些ascii碼是連續的,且按照dao其本身數字的大小來排列。
這樣就可以將字元值,減去起始ascii碼值實現轉為對應值的效果。
設int a; //轉換的目標變數。
char c = '7'; //要轉換的字元。
c = a - '0';
這樣得到的就是對應的值了,即c = 7。
如果在檔案中需要多次該操作,則可以定義一個帶參巨集,如下:
#define chartonumber(x) (x-'0')這樣只需要呼叫
c = chartonumber(a);
即可實現效果。
19樓:匿名使用者
atoi是將數字的char*字元bai串轉化為duint型
將數字的char轉換為int,直接輸出zhiint格式的char型就dao
行,或者a-'0',ine和內char是可以根據ascii碼進行隱容式轉換的
ascii碼錶
20樓:西門**
x = (int)(unsigned char)c;
c語言中將一個浮點型賦值給整型時,會不會四捨五入?
21樓:幻翼高達
c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。
將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:
賦值時的型別轉換實際上是強制的。
例如執行賦值後,無論5.4還是5.6都會變成5。
22樓:_夢幻陽光
不會的,不過可以寫一個函式自己轉換啊
#include
int fun(float x)
int main()
列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現
23樓:匿名使用者
不會的,如int x; 如果有 x=4.78; 則x的值是4
24樓:匿名使用者
不會,後面的小數就直接沒了,只有整數部分了
採納我哦
25樓:匿名使用者
不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?
26樓:龍__鳳
不會的,看程式的執行結果:
27樓:路過
你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。
希望能夠幫到你。
28樓:匿名使用者
不會,一般是給你強轉成整形了,小數位就沒了,四捨五入是不存在的
29樓:匿名使用者
不會,只會把整數部分賦給整型變數
30樓:匿名使用者
不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入
C語言中char型和int型資料是以(原碼,反碼,補碼,ASCLL碼)形式儲存的,最好順便說說別的
char型是以ascii碼儲存的 對於int型資料 正數是用原碼,負數是用補碼 c語言中 char與int有什麼區別?c語言中 char 與 int 具體區別如下 1 表示的變數型別不同 char 是字元變數,而 int 是整型變數。2 申請的型別資料不同 char 用來申請字元和字串或者字串指標 ...
c語言把int變數地址賦給另int變數
p是指標變數,取復p地址制的地址賦值給一個變數bai,用 p,這是對的。du 問題zhi在於用來儲存這個結果的變dao量是什麼型別的,應該是指向指標的指標,int q。int p,q p new int p 30 q p 直接訪問 q是危險的!應該先給q賦值再訪問 q,比如 q new int q ...
C語言中如給int型的變數賦值inta4和int
你要顯示成01麼。這不太可能,貌似c語言中沒有用0在前面站位的格式用法。倒是可以用空格佔位,printf 5d a 當a的值小於5位的時候,會有空格在前面站位。超過5為照常顯示。這兩copy種方法的結果是沒有區別的bai 但執行過程有差別,但後者比 du前者耗zhi時,所以推薦前者。至於是dao不是...