• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:unsighed charの数値をstringに)

How to convert unsigned char numbers to string

このQ&Aのポイント
  • Learn how to convert unsigned char numbers to string in C++.
  • Use the provided code to convert the numbers and assign them to a string variable.
  • Check the example code and find out the correct way to assign the numbers to the string.

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>この中に入っているのは数値です。バイナリファイルから代入した値をここに入れています。なので、hexで出すと”31”と出てくるのですね。 hexで31ならば'1'ですから「数字の1」ではありませんか? まぁ数値の49でもあるワケですが。 # ASCIIコードならば…ですが。 C#じゃなくて…CLIでしたっけ? # epistemeさんのコードは、VS2005でCLRで動きましたが…。 # この辺り、全然触っていないのでなんとも…。

diy_sunny
質問者

お礼

回答頂きありがとうございます。助かります。 今思ったのですが、 >hexで31ならば'1'ですから「数字の1」ではありませんか? >まぁ数値の49でもあるワケですが。 ># ASCIIコードならば…ですが。 ”31”というhexだから、 String^ id_data_str; id_data_str = Wireless_unit[i].wireless_id[k]; このように入れたらいけるのかなと思ったのですが、次のようなエラーが出ました。 1trunk\vc_test\setting_check\homebank\Form1.h(588): error C2440: '=' : 'unsigned char' から 'System::String ^' に変換できません。 1> 使用可能なユーザー定義された変換演算子がない、または 1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== やはり ToString()を使わないといけないのでしょうか?

その他の回答 (2)

回答No.2

using namespace System; using namespace System::Collections::Generic; int main() { const int N = 6; unsigned char id[N] = { 1, 2, 3, 4, 5, 6 }; Text::StringBuilder builder; for ( int i = 0; i < N; ++i ) { builder.Append(String::Format("{0}",id[i])); } String^ result = builder.ToString(); Console::WriteLine("[{0}]", result); }

diy_sunny
質問者

お礼

回答頂きありがとうございます。ちょっとStringBuilderっていうのを試してみたいと思います。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

C#は触っていませんが… >Wireless_unit[i].wireless_id[0] = 1; の1は「数値」の1ですか? 「数字」の1('1')ですか? 「数値」と「数字」の違いはわかりますか? >Wireless_unit[i].wireless_id[k].ToString("X2"); は、「wireless_id[k]の値を16進数表記2桁で文字列化せよ」ということではありませんか? 上の「数字」の1であればASCIIコードで0x31になりますから、 >Wireless_ID_str02[i]->Wireless_ID_str = ”test313131313131” で"31"になるのは指定通りです。 # 元々"test"が入っていたのでしょう。 数値の1であれば、 ”test010101010101” となったでしょう。 その上で… ToString("X2") が意図したモノですか? 「数字」だったらToString()など使わずにそのまま連結できるんじゃないでしょうか? 「数値」ならToString("D1")かToString("X1")となるのでは? # ただし入っている数値が0~9の場合に限りますが。

diy_sunny
質問者

お礼

回答頂きありがとうございます。助かります。 >>Wireless_unit[i].wireless_id[0] = 1; >の1は「数値」の1ですか? >「数字」の1('1')ですか? >「数値」と「数字」の違いはわかりますか? >>Wireless_unit[i].wireless_id[0] = 1; この中に入っているのは数値です。バイナリファイルから代入した値をここに入れています。なので、hexで出すと”31”と出てくるのですね。 これをhexの”31”だったら数字の”1”として代入してくれる方法などないでしょうか?

関連するQ&A