Re: [問題] C語言int轉byte寫入char
※ 引述《cophie (內褲魔)》之銘言:
: 請問一下如果剛好跟這題相反
: 想要將四個char合成int的話
: char temp[4];
: int *num;
: for(int i=0;i<4;i++)
: num=(int*)temp[i];
: 我的想法是這樣 不過根本compile不過
: 請益各位高手了
: ※ 引述《pico2k (風月)》之銘言:
: : ...
: : int a = 10;
: : char *c = null;
: : c = (char*)&a;
: : a1 = *c;
: : a2 = *(c+1);
: : a3 = *(c+2);
: : a4 = *(c+3);
: : ...
剛好最近有用到類似的功能:
union TypeChg
{
public:
char _char[4];
int _int;
};
int main(int argc, char *argv[])
{
TypeChg Tmp;
Tmp._int = 0x123456;
cout<<hex<<((int)Tmp._char[0])&0xFF<<endl; // Tmp._char[0] == 0x56
cout<<hex<<((int)Tmp._char[1])&0xFF<<endl; // Tmp._char[1] == 0x34
cout<<hex<<((int)Tmp._char[2])&0xFF<<endl; // Tmp._char[2] == 0x12
cout<<hex<<((int)Tmp._char[3])&0xFF<<endl; // Tmp._char[3] == 0x00
...
}
可能要先用sizeof確認一下int跟char的比例。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.181.135
※ 編輯: icetofux 來自: 203.67.181.135 (12/08 13:32)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):