• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:int型の変数値をバイト列としてコピー)

int型変数をバイト列としてコピーする方法とは?

このQ&Aのポイント
  • int型の変数をバイト列としてコピーする方法で困っています。
  • memcpyを使ってコピーした結果、文字列の並びが逆転しているように見えます。
  • 実行環境はCentOS(32bit)+gccです。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

それで正常です。コピーできてます。 39 30 00 00 00 は、1の位が 0x39 で、256の位が 0x30 で、それより上の位が 0 ということです。 左から1の位から順に表示させているので、逆に見えるだけ。

kumakku-
質問者

お礼

回答ありがとう御座います。正常であることが確認できて助かりました。 表示が逆順にみえるのは、表示のさせ方の問題なんですね。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

ど~でもいいけど, c = (char *)malloc(sizeof(int)); や memcpy(c,(int *)&i,sizeof(int)); のキャストって何をしたいんだろう.

kumakku-
質問者

お礼

回答ありがとうございます。 指摘されて気がつきましたが、変数宣言を unsigned で宣言して、符号なしでキャストしてますね。。。。何がしたいんだろう とは、この事でしょうか?

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

リトルエンディアン ビッグエンディアン を調べて見ましょう。 ただ移植性などを考慮するのであれば その方法はお勧めしかねます。

kumakku-
質問者

お礼

回答ありがとうございます。 出力結果を利用するときに、実行環境に依存してしまうという認識で合っていますか? 移植性を考えると、バイナリでコピーではなく、文字列として扱う方が一般的でしょうか? リトルエンディアン・ビッグエンディアンについては、調べてみます。

関連するQ&A