[爆卦]char to int c語言是什麼?優點缺點精華區懶人包

為什麼這篇char to int c語言鄉民發文收入到精華區:因為在char to int c語言這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者cophie (內褲魔)看板C_and_CPP標題Re: [問題] C語言int轉byte寫入c...


請問一下如果剛好跟這題相反

想要將四個char合成int的話

char temp[4];
int *num;

for(int i=0;i<4;i++)
num=(int*)temp[i];

我的想法是這樣 不過根本compile不過

請益各位高手了

※ 引述《pico2k (風月)》之銘言:
: ※ 引述《Rebeel (123)》之銘言:
: : 遇到的問題: (題意請描述清楚)
: : 今天面試被問到一個問題
: : 當場掛住= =||
: : 回來後查了一些資料還是不太懂
: : 感覺是很基礎的問題但是從來沒想過...
: : int a 為1個4 byte
: : char a1,a2,a3,a4 為4個 1 byte
: : 問題:如何將 int a □□□□
: : 分別寫入 a1 □ a2 □ a3 □ a4 □
: : 首先第一個疑問是,例如int a=10 好了,那int a=10 所佔的4個byte裡面是什麼呢?
: : 光是這個我就搞不懂了= =
: : 再來是要寫到char裡面
: : 一個char不是一個字元嗎?
: : int a=10 那 4個byte不會是1010吧!
: : 既然不是剛好 4個字元
: : 又要怎麼寫到 4個char裡面?
: : 上網查了一下有些Java或C++的範例
: : 但是跟我想問的好像不太一樣...
: ...
: int a = 10;
: char *c = null;
: c = (char*)&a;
: a1 = *c;
: a2 = *(c+1);
: a3 = *(c+2);
: a4 = *(c+3);
: ...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.230.54.240
james732:union 12/07 23:58
purpose:"12" -> ('1' - '0')*10 + ('2' - '0') 12/08 00:02
tomet:char temp[4]={1,2,3,4}; 12/08 00:11
tomet:int num=0; 12/08 00:11
tomet:for(int i=0;i<3;i++) 12/08 00:11
tomet: num=(num+temp[i])<<8; 12/08 00:12
tomet:num+=temp[3]; 12/08 00:12
stupid0319:以上的高手想法完全不一樣...... 12/08 00:15
Yshuan:2樓想表示char轉數字要注意bit表示 綜合3樓應該就原PO要得 12/08 00:55
tingyushyu:char temp[4]; int num; num=*((int *)temp); 12/08 02:01
tingyushyu:只不過上面的方法可能要注意endian的問題 12/08 02:01
tingyushyu:假設int是4byte 12/08 02:03
stupid0319:我以為int *num = (int*)temp;這樣就可以了吧 12/08 02:58
stool100:一樓的umion才是王道 12/08 11:51
horngsh:推union 12/08 12:49
cophie:感謝樓上幾位 小弟在此一拜 12/08 20:45
sandr1983:union很好用. 不過好像還要檢查 大小印地安 12/09 00:44
xatier:推union 12/09 07:19

你可能也想看看

搜尋相關網站