- ベストアンサー
DWORDとcharの変換
突然ですが、DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか? あれば関数名など教えていただけると助かります。 いそいでいます。お願いしますm(_ _)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どんな風に変換するかによると思うけど・・・・。 メモリ上の話で言えば、例えばWindows(32bit)だと、DWORDは32bit(4byte)、charは8bit(1byte)になるよね。 なので、リトルエンディアンだと、泥臭い処理をするなら以下のようになる。 -------- DWORD* pdw; char* pc; // ここで pdwが確かな場所を指すようにする。 *pc++ = (char)(*pwd & 0xff); *pc++ = (char)(*pwd >> 8 & 0xff); *pc++ = (char)(*pwd >> 16 & 0xff); *pc++ = (char)(*pwd++ >> 24 & 0xff); -------- 後はこれを変換したい分だけループしてあげれば、一応目的は果たせそうだけど・・・・? charはunsigned charかBYTEの方が良いかも知れない。
その他の回答 (2)
- jacta
- ベストアンサー率26% (845/3158)
> DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか? 「DWORD*がたの文字列」とは何でしょうか? 文字列は通常charまたはwchar_tの配列です。DWORD*がたの文字列が、どんな表現方法になっているのか分からないと、どうすることもできません。
- sha-girl
- ベストアンサー率52% (430/816)
多分DWORD(=unsigned long) の値が50なら char[] の"50"とかにしたいのだと思いますが DWORD dw = 50; char buf[8]; sprintf( buf , "%u" , dw);
お礼
できました!! 分かりやすい回答どうもありがとうございましたm(_ _)m