• ベストアンサー

WORDをcharに変換する方法

MFCデータ型のWORD(C言語のunsigned(signed)short)の値を)char型に変換する方法をご存知の方がいらっしゃったらお願いします。

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

  • ベストアンサー
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.3

それってC標準関数のitoa()じゃ、なにか不味いんでしょうか? #include <stdlib.h> ... WORD wNumeric = 123; char pszConvertNumeric[256]; itoa(wNumeric, pszConvertNumeric, 6); ってな感じでいけると思いますけど・・・ この方法で不味いのであれば補足してください。 itoa()に関してはMSDN libraryを参照してください。

tanosuke
質問者

お礼

お答えをいただいた皆さんありがとうございます。 itoa()かぁ。atoi()は知ってたけど、C標準関数知らないでVC使うのきついかも、しかも業務で・・・。 C言語勉強しなおします。 これからもよろしくお願いします。

その他の回答 (2)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 簡単なところでは。 WORD b=123; char c[10]; sprintf(c,"%d", b ); では、いけませんか?

  • jppy
  • ベストアンサー率14% (14/99)
回答No.1

(char)でキャストすれば良いのでは?そうじゃないのかな?

tanosuke
質問者

補足

補足です。すみません。 例えば WORD word=123をchar型の文字列"123"に変換し、 char* charにstrcpy()で値をコピーするという処理を現在 思案中です。

関連するQ&A

  • char→10進数

    PICのプラグラムをC言語で書いています。 unsigned charでxを宣言して、xには電圧をAD変換した値(8bit)が代入されます。このxの値を10進数に変換したいのですが、char型をどうすればint型に変換すればいいのか分かりません。 自分なりに作ってみましたが、うまく動作しません。ご教授よろしくお願いします。 /*抜粋*/ unsigned char x; int y,i; float n; ・・・ y=0; for(i=7;i>=0;i--){   n=(((x>>i)<<7)>>7);   if(n==1)n=pow(2,i);   y=y+(int)n; }

  • VC++2010 MFC 符号付きchar型変換

    VC++2010 MFCで今アプリケーションを作成していて、質問がございます。 例 char c_buff; unsigned char uc_buff; 上記のように変数を宣言し、 c_buffには0xFD;が入ってます。 その値を uc_buffに代入したいのですがどのように行ったら代入できるか よろしくお願いします。

  • 暗黙的型変換

    C の文法書を読んでいると、 汎整数型拡張: int より小さな汎整数型が式中に現れる場合は、暗黙的に int 型に変換される。 算術変換: 二項演算子で二つのオペランドの型が違う場合は、演算前により大きな方の型に暗黙的に変換される。 とあります。 例えば int 型 = unsigned short 型 - unsigned char 型; はどのように暗黙的な型変換が行われるのでしょう。 int 型 = (int)unsigned short 型 - (int)unsigned char 型; でしょうか。あるいは、 int 型 = (int) ( unsigned short 型 - (unsigned short)unsigned char 型); でしょうか。

  • バイナリの文字列を変換したい...

    Jpeg のExifを解析するスクリプトを書いてます あるバイナリの文字列を下記の形式に 変換する手段をどなたかご存知ないですか? (そもその下記の意味さえわからないですが) unsigned byte ascii strings unsigned short unsigned long unsigned rational signed byte signed short signed long signed rational single float double float よろしくお願い致します

    • 締切済み
    • PHP
  • int型をchar[]に変換する方法

    int型をchar[]に変換する方法 C++で、たとえば int i = 234; を宣言します。それを char c[4] = {'2','3','4','\0'}; に変換する方法があれば教えてください

  • MicroC コンパイラ 変数宣言

    MicroC コンパイラ 変数宣言について質問です BYTE tmp1; WORD tmp2; なる定義があったとして 変数型範囲はどの範囲になるのでしょう 下記の定義は見つかったのですが 上記は分かりません 変数型 バイト数 範囲 (unsigned) char 1 0 .. 255 signed char 1 - 128 .. 127 (signed) short (int) 1 - 128 .. 127 unsigned short (int) 1 0 .. 255 (signed) int 2 -32768 .. 32767 unsigned (int) 2 0 .. 65535 (signed) long (int) 4 -2147483648 .. 2147483647 unsigned long (int) 4 0 .. 4294967295 float 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038 double 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038 long double 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038

  • charの操作について

    お世話になります、フジと申します。 今回皆様にお聞きしたいことはchar型変数の操作についてなのですが、次のプログラムのようにchar型に代入した整数を16進数用に変換させ、最後に同じchar型の変数に代入したいと考えています。 int a,b,c; char data = 48; //dataに10進数48を代入 c = (int)data; //ここでcは48になる a = c/16;          //16進数用に変換 b = c%16; c = 10*a + b;        //ここでcは30になる このint型変数c(30)をchar型変数dataに代入するにはどうしたらいいでしょうか? char buf[5]; sprintf(buf,"%d",c); にすればchar型の配列に代入することは出来ますが、これだとcの値30がbuf[0]=3,buf[1]=0となってしまい、目的の操作が達成できません。 よい方法をしっている方がいましたら、宜しくお願い致します。

  • C言語の型変換について

    short int 型をunsigned char型に変換する方法をおしえてください

  • C言語でunsigned char配列を連結する方法ってありますか?

    C言語でunsigned char配列を連結する方法ってありますか? 例えば unsigned char test[]={0x00,0x02,0x03}; unsigned char test2[]={0x05,0x06}; という配列があったとして test[]という配列のあとにtest2の配列を追加することは可能でしょうか? {0x00,0x02,0x03,0x05,0x06}という配列になればOKです。 よろしくお願いします。

  • unsigned char SJis[2]からstd::stringに変換

    開発環境は VC++ 2008 Express Edition あるDLLの関数で戻り値としてShiftJISの1文字が格納された unsigned char SJis[2] が返され,これを呼び出し側のプログラムで使っている文字列 std::string str に順に追加していこうと思っています. そこで, unsigned char tmpSJis[3]; tmpSJis[0] = SJis[0]; tmpSJis[1] = SJis[1]; tmpSJis[2] = '\0'; str += std::string(tmpCode); というコードを書いてループさせたのですが, error C2440: '<function-style-cast>' : 'unsigned char *' から 'std::string' に変換できません。 というエラーが出てしまいうまく変換できません. これを解決する方法はありませんか?