C言語関係掲示板

過去ログ

No.953 16進数を10進数に変換

[戻る] [ホームページ]
No.12189

16進数を10進数に
投稿者---osamu(2004/01/27 12:47:00)


はじめまして。

題名のとおり16進数を10進数に変換して表示するプログラムを作りたいのですがどうしたらよいのかわかりません。

流れとしては、
16進数の入力→10進数に変換→10進数を表示
です。

特に「10進数に変換」がわかりません。
アドバイスお願いします。

No.12192

Re:16進数を10進数に
投稿者---雀nk(2004/01/27 13:02:04)


>16進数の入力→10進数に変換→10進数を表示
ということは、16進表記の「文字列」を10進の「数値」に
変換したいということですね?

もし、そうならsscanf()が使えます

No.12236

Re:16進数を10進数に
投稿者---かずま(2004/01/28 13:50:18)


    int n;
    scanf("%x", &n); /* 入力の 16進文字列を int の値に変換。*/
    printf("%d", n); /* int の値を 10進文字列に変換して出力。*/

int の値は 2進です。


No.12247

Re:16進数を10進数に
投稿者---YuO(2004/01/28 15:41:40)


>16進数の入力→10進数に変換→10進数を表示
>特に「10進数に変換」がわかりません。

16進数字文字列を数値になおして,
その数値を10進数字文字列として表示すればよいです。

16進数字文字列→数値
・fscanfファミリーのx変換指定子を利用する
・strtol系関数で基数に16を指定する

数値→10進数字文字列
・fprintfファミリーのd, iまたはu変換指定子を利用する


値自体に基数という考え方が存在しないことに注意して下さい。
基数の変換という話が出たら,一旦数値に直せばよいです。


No.12366

Re:16進数を10進数に
投稿者---osamu(2004/01/31 15:47:55)


ありがとうございました。

おかげでうまく出来ました。