• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語について)

C言語の整数変換に関する質問

このQ&Aのポイント
  • C言語における整数の16進数、8進数、2進数への変換方法について質問です。変換にはビット演算子を使用する必要がありますが、具体的なプログラムの書き方がわかりません。
  • C言語で整数を16進数、8進数、2進数に変換する方法について質問です。printfのフォーマットではなく、ビット演算子を使用して変換するプログラムの書き方を教えてください。
  • C言語で整数を16進数、8進数、2進数に変換する方法について質問です。printfのフォーマットを使わずに、ビット演算子を利用したプログラムの変換処理の書き方を教えてください。

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

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

ビットシフトが必要なのは「各桁を取り出す準備」に必要な作業だね。 友人の言っている「&」は実際に取り出す場合に必要な演算だね。 表示は10進数なんだけどコンピュータの中身って2進数なんだよ。 だからビットシフトや論理積とかで各桁を取り出せるんだけど…それが判るようなら組めるね。 手で進数変換演算、やらなかった?あれをプログラムするだけなんだけど…

その他の回答 (3)

  • VOT
  • ベストアンサー率45% (11/24)
回答No.4

「変換」とか言ってるから話がおかしくなるんだと思いますが。 たとえば変数 i に i = 32 っていう代入がされてるとして、これを 0x20 040 0010 0000 とか表示するプログラムを作れっていう課題ですよね。これは変換じゃなくて、単に同じ意味の数字を別の表し方で表現しているだけです。 これをprintf()のフォーマット指定子を使う以外の方法で実装しろってことでしょうから、出力したい文字を一文字ずつ求めて putc() かなんかで出していけば課題の意図にそうと思いますよ。ビット演算子使わなくても割り算でできますけど、あえてビット演算使わせてるだけでしょう。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.3

No.1です すでにNo.2氏が回答しているけど、2/8/10/16進数はPC上では一緒。 それを「画面上に」費用時する時にどうするかというのが問題。 そのヒントはすでにNo.1で回答済み。 >今友達と考えていたのですが、その友達が&をつかったらできるかもといってました。これでもできるのでしょうか? &だけではできません。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

まず、printf()には2進数で表示する出力書式はありません。 とりあえず10進数を2進数に変換して考えます。(2進数への変換はあえて記載しません。) 2進数:2進数が1bit必要。そのビットが「0」か「1」であることを表示 8進数:2進数が3bit必要。0~7でそのまま表せる。 16進数:2進数が4bit必要。0~9まではそのまま表せる。「10=A」~「15=F」で表示する処理を作る。

noname#88209
質問者

補足

すみませんでした。 できるだけまとめようとして2進数もそこに入れてしまいました 正しくは、「ビット演算子を用いて」のあとに16,8,2進数を変換する処理をかけでした。 今友達と考えていたのですが、その友達が&をつかったらできるかもといってました。これでもできるのでしょうか?

関連するQ&A