• ベストアンサー

DWORDとcharの変換

突然ですが、DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか? あれば関数名など教えていただけると助かります。 いそいでいます。お願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

どんな風に変換するかによると思うけど・・・・。 メモリ上の話で言えば、例えば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の方が良いかも知れない。

genki140
質問者

お礼

できました!! 分かりやすい回答どうもありがとうございましたm(_ _)m

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> DWORD*がたの文字列をchar*がたの文字列に変換する方法ってありますか? 「DWORD*がたの文字列」とは何でしょうか? 文字列は通常charまたはwchar_tの配列です。DWORD*がたの文字列が、どんな表現方法になっているのか分からないと、どうすることもできません。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

多分DWORD(=unsigned long) の値が50なら char[] の"50"とかにしたいのだと思いますが DWORD dw = 50; char buf[8]; sprintf( buf , "%u" , dw);

関連するQ&A