c語言中我把int型資料賦給char型如

2021-04-28 17:13:53 字數 4285 閱讀 2763

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不是...