• ベストアンサー

16進数 加算 減算 C言語

今学校でC言語を学んでいるのですが、「16進数同士の加算・減算」を行う問題が出されました。 16進同士の計算となると'A'~'F'や桁上がりの対処など壁にぶち当たっています。 私は10進に直してから加算・減算し、また16進に直す方法しか思いつかず。16進のままで計算は出来ると思うのですが、分かりません。 教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

あなたのいう「16進数同士の加算・減算」とはどのようなものなのでしょうか? また, 「10進に直す」とはどのような操作を意味するのでしょうか? 特に変換などせずとも 0x37 + 0x1A と書けば勝手に計算してくれる (この場合は 0x51 かな) はずですが.

bonnie_yoo
質問者

お礼

今試しにやってみたら思い描く形になりました。 普通に「0x」で16進と定義してあげればよかったんですね。 難しく考え過ぎてました。 本当にありがとうございました。

その他の回答 (1)

  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.2

こんにちは。 必殺技は無いと思います。 慣れるしかないです。 私の場合、脳内でA~Fを10進の値に強力に紐づけてやっています。  10→A  11→B  12→C  13→D  14→E  15→F この6コを、強力に頭にたたきこみます。 その上で、  9+1=10→Aです。  6+6=12→Cです。 慣れれば、  5+8=D と出せるようになります。 そうこうしている内に、A~Fはアルファベットではなく数字ではないかと思えてきます。 さらにその上で、 複数桁は、所詮ひと桁加減算の繰り返しですので、上記を繰り返すだけです。 ひと桁計算をマスターした後なら、繰り上がりなど「へのカッパ」です。 謙虚に、筆算を紙に書いて、じっくり取り組みましょう。 頑張って下さい。

bonnie_yoo
質問者

お礼

今回私の思っていた回答とは少し違っていたものの、改めて16進とはなんぞや?的なものを勉強出来ました。 ありがとうございました。

bonnie_yoo
質問者

補足

説明不足でした。 16進同士の加減算は紙上では一通り出来ます。 今回は、「プログラム(C言語)上でどのように組めば16進同士の加減算(特に桁上がり)が出来るのか?」という質問でした。 また、お時間があれば返答宜しくお願いします。 申し訳ありませんでした。。

関連するQ&A

専門家に質問してみよう