掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24732

16進を10進に
投稿者---test(2005/12/12 01:44:48)


16進で入力した値を10進で計算後出力するcalcを作ろうと思うんですが、
convertがうまくいきません。

どなたか訂正していただけませんか?

#include<stdio.h>
#include<stdlib.h>

void convert(double *data1, double *data3)
{
}
int main(int argc, char *argv[])
{
    int i, data2;
    double data1, data3;
    data1 = atof(argv[1]);
    data2 = *argv[2];
    data3 = atof(argv[3]);
    convert(&data1, &data3);
    switch(data2){
        case '+' :
            data1 = data1 + data3;
            break;
        case '-':
            data1 = data1 - data3;
            break;
        case '*':
            data1 = data1 * data3;
            break;
        case '/':
            data1 = data1 / data3;
            break;
        default:
            printf("Error\n");
            exit(1);
        printf("Error\n");
        exit(1);
    }
    printf("\n>>>%lf", data1);
    return 0;
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:16進を10進に 24733 wiz 2005/12/12 01:58:53
<子記事> Re:16進を10進に 24734 まきじ 2005/12/12 01:59:10
<子記事> Re:16進を10進に 24735 かずま 2005/12/12 11:45:12


No.24733

Re:16進を10進に
投稿者---wiz(2005/12/12 01:58:53)


>16進で入力した値を10進で計算後出力するcalcを作ろうと思うんですが、
>convertがうまくいきません。
convert関数がからですが。。。?

何をどうしたらどうなったのかを書いたほうがいいですよ。

#そもそも値の進数って表示上の問題でプログラム上では
#気にする必要ないと思いますが。。。整数と実数なら
#話は別だと思いますが。。。ちがったかな。。。;


この投稿にコメントする

削除パスワード

No.24734

Re:16進を10進に
投稿者---まきじ(2005/12/12 01:59:10)


>16進で入力した値を10進で計算後出力するcalcを作ろうと思うんですが、
>convertがうまくいきません。

atoi() や atof() の引数に "0x0A" と渡してやっても
引数の文字列に 'x' や数字でない文字が含まれている為
戻り値は 10 や 10.0 にはなりません

なので strtol() を使えば如何ですか?


この投稿にコメントする

削除パスワード

No.24735

Re:16進を10進に
投稿者---かずま(2005/12/12 11:45:12)


> 16進で入力した値を10進で計算後出力するcalcを作ろうと思うんですが、
次のようなことがしたいのですか?

C:\tmp>calc 163 / 71

>>>3.141593
C:\tmp>

0x163 = 355, 0x71 = 113, 355.0/113.0 = 3.141593 です。

また、入力は 1f.8c のような小数でもいいんですか?
指数はどう表現するのですか?
e は 16進文字ですから困りますね。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧