C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 16進数を10進数に(2桁目以降)


(過去ログ 85 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■50412 / inTopicNo.1)  16進数を10進数に(2桁目以降)
  
□投稿者/ ピーマン (1回)-(2010/06/06(Sun) 21:27:20)

分類:[C/C++] 

スイッチを使って16進数を10進数に変換するプログラムを作るつもりです。
自分で作ったプログラムでは、入力された一桁目しか10進数に変換することができません。
2桁目以降を順次変数に代入して使うには、どうすればいいのでしょうか。

#include<stdio.h>

int main(void);

int main(void)
{
int x , y;
printf("16進数を入力してください。\n");
x = getchar();
switch( x){
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
y = x - '0';
break;
case 'A':
case 'B':
case 'C':
case 'E':
case 'F':
y = x - 'A' + 10;
break;
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
y = x - 'a' + 10;
break;
default:
printf("それは16進の数字ではありません.");
}
printf("16進数 %c は10進数 %d です。", x, y);
return (0);
}

引用返信 編集キー/
■50413 / inTopicNo.2)  Re[1]: 16進数を10進数に(2桁目以降)
□投稿者/ .SHO (1348回)-(2010/06/06(Sun) 22:20:57)
No50412 (ピーマン さん) に返信

> 2桁目以降を順次変数に代入して使うには、どうすればいいのでしょうか。

超基本的な話なので、もう少し自分で考えてみましょう。

> #include<stdio.h>
>
> int main(void);

# ところで、この main 関数をプロトタイプ宣言するのはなぜ?
# 前にも同じこと書いてる人いたけど、どこかの学校の課題?

引用返信 編集キー/
■50425 / inTopicNo.3)  Re[2]: 16進数を10進数に(2桁目以降)
□投稿者/ 774RR (514回)-(2010/06/07(Mon) 09:49:37)
strto* げふげふ

10進数で 123 というと 1*100 + 2*10 + 3*1 なわけだ。
16進数で 123 (0x123) というとその値はどう計算するか、理解できてる?
理解できたら、あとはその演算方式を実装するだけだよ
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -