DOBON.NET DOBON.NETプログラミング掲示板過去ログ

UCHAR型配列からLONG型に変換

環境/言語:[Windows XP VC++6]
分類:[.NET]

2012/05/16(Wed) 14:45:28 編集(投稿者)

UCHAR data[256];
data[0] = 0x30; '0'
data[1] = 0x30; '0'
data[2] = 0x31; '1'
data[3] = 0x30; '0'
data[4] = 0x31; '1'
.
.
.

このようにデータが入っています。
ここからdata[0]〜data[4]までを取得し
LONG型に変換し、

LONG number = 00101

のようにしたいです。
どのようにすればいいでしょうか?
■No30449に返信(ぷーたさんの記事)

forでiを0から4までまわして
number = number * 10 + (int)(data[i]-'0');

を計算するといいと思います。


要素0〜4までの文字列にしてatoiを使うという方法もあるかも。
■No30450に返信(shuさんの記事)
返信ありがとうございます。
> forでiを0から4までまわして
> number = number * 10 + (int)(data[i]-'0');
>
> を計算するといいと思います。
>
>
> 要素0〜4までの文字列にしてatoiを使うという方法もあるかも。


CHAR no[5];
ZeroMemory( no, sizeof( no ) );
CopyMemory( no, &data[0], 5 );
ULONG roomNo = atol( no );
このように0〜4をnoという新たな配列に入れ、
その配列をatolすることで出来ました。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板