人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

標準的なC++ で 16進む文字列(4桁)を数値に変換する最もスマートなコードを教えてください。

●質問者: hiroshi
●カテゴリ:コンピュータ
✍キーワード:C++ コード スマート 文字列
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● akibare
●50ポイント

http://www9.plala.or.jp/sgwr-t/lib/strtol.html

strtol

#include <stdlib.h>

long strtol(const char *nptr, char **endptr, int base);

◎質問者からの返答

ありがとうございます。

でもこれって C言語的な関数ですよね。もっと C++ ぽい物はないのでしょうか?

ちなみに元の文字列は std::wstring とか std::string に入っています。


2 ● hidep1971
●50ポイント

http://www.hatena.ne.jp/1111021441#

人力検索はてな - 標準的なC++ で 16進む文字列(4桁)を数値に変換する最もスマートなコードを教えてください。

URLはダミーです。

スマートかどうかはなんとも言えませんが・・・。桁数は任意にしてあります。

Aに16進文字列を入れるとBに数値が返ってきます。

#include <stdio.h>

void main ( void )

{

char a[]=”Ab78”;

unsigned long b;

int i1;

b=0;

for (i1=0;a[i1]!=NULL;i1++)

{

b=(b<<4)+((a[i1]&0x0f)+((a[i1]&0x50)-’A’+10)*(a[i1]>=’A’));

}

}

◎質問者からの返答

なかなかコンパクトで良いコードだと思います。

先ほどのコメントに書いたのですが、もう少し C++ ぽい物がほしいのですが。

質問の意図がわかりにくかったので、もう一度質問しなおす事にします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ