10進数を16進数に変換して出力


DAIMON  2008-02-04 20:24:51  No: 67428

10進数(Xの値)での数値を16進数に変換して、下記のようにXの値を〇〇〇のところに入力したいのですが、どうしたらよいのでしょうか?

X = 定数1+(数値1 - 数値2) * 定数2    
    
wData[2] = 0x〇〇〇;

何分、初心者で申し訳ありませんが、よろしくお願いいたします。


ん?  2008-02-04 20:42:22  No: 67429

wDataやXの型宣言は何?


maru  2008-02-04 22:11:19  No: 67430

> wDataやXの型宣言は何?
というより、何をやりたいのか、さっぱり分からん。
タイトルは「10進数を16進数に変換して出力」で、やりたいことは「入力したい」?
定数1、2と数値1、2の違いは何?  数値1,2がコンパイル時に値が決ま
っているなら、それも定数だと思うけど、定数でないとすると「〇〇〇のとこ
ろに入力したい」が分からんし。

以下、質問を勝手に解釈。

Xの値をwData[2]に入力するなら
wData[2] = X;
でいい。

定数1、数値1、数値2、定数2が定まった値(定数値)ならば、
wData[2] = 定数1+(数値1 - 数値2) * 定数2;
とそのまま書いても可。定数1、数値1、数値2、定数2が10進数、
16進数であっても、wData[2]には計算結果が代入される。

また、どうしても
wData[2] = 0xABCD;
のように直接書きたいのであれば、電卓([スタート]-[プログラム]-
[アクセサリ]-[電卓])を使用して、計算した後、"16進"を選択すれば
16進表記にしてくれる。


maru  2008-02-04 22:19:04  No: 67431

> また、どうしても
> wData[2] = 0xABCD;
> のように直接書きたいのであれば、電卓([スタート]-[プログラム]-
> [アクセサリ]-[電卓])を使用して、計算した後、"16進"を選択すれば
> 16進表記にしてくれる。
補足。
"電卓"は[表示]メニューで[関数電卓]モードで使用のこと。

# でも、16進変換は今も机から関数電卓を取り出してしまう私。


ななし  2008-02-05 10:35:22  No: 67432

蛇足ながら私も回答。

Cの変数は大別して整数型・少数型・文字型の3つに分かれますが、整数型に10進とか16進のような区別はありません。
int a;
a = 10;
a = 0x0a;
はどちらも同じくaに10が代入されます。10と0x0aのどっちを使うかはプログラマーの自由でどっちを使っても結果は同じです。

ただし以下のようにaを文字型に変換して表示するような場合は違いは出てきます。たぶんそこら辺に誤解があると思います。
printf("%d",a);
printf("%x",a);


夏みかん  2008-02-06 20:28:24  No: 67433

> 10進数(Xの値)での数値を16進数に変換して、下記のようにXの値を〇〇〇のところに入力したいのですが、どうしたらよいのでしょうか?
これは定数式と解釈してよいかな。
だとするとそのまま 0x をつけずに代入すればいいじゃん。

wData[2] = 定数1+(数値1 - 数値2) * 定数2;

これでOK
C言語では8進表記、10進表記、16進表記などできるが整数型の内部では
2進表現されているから 0x なんぞつける必要性はないゎな。
分かるかいこの説明で。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加