C言語で2進数表示を行う関数を作ってみました。
自分では良い感じにできたつもりなのですが、もっと良いプログラムがあるんじゃないかと思います。
もし、あれば教えていただけませんか?
自作のものは下の通りです。
// countはxを2進数表示したときの桁数
2進数表示について
Re: 2進数表示について
もっと良いプログラムを問う以前に、そのプログラムでは
「"」が「“」と「”」になっていて、コンパイルエラーになります。
0 か 1 だけを表示するのに printf は処理が重いので、
putchar を使うほうが良いと思います。
Re: Re: 2進数表示について
回答ありがとうございます。
一番下の「putchar("01"[x >> --count & 1']);」というのが初めて見るのでよくわからないのですが、文字列リテラルを配列のように扱っているのでしょうか?あと「& 1」のあとの「′」には何か意味がありますか?
Re: Re: 2進数表示について
すみません。「'」は投稿時に入ったゴミです。sa さんが書きました: ↑7年前一番下の「putchar("01"[x >> --count & 1']);」というのが初めて見るのでよくわからないのですが、文字列リテラルを配列のように扱っているのでしょうか?あと「& 1」のあとの「′」には何か意味がありますか?
文字列リテラルは const char (または char) の配列です。 は と同じです。
書き方は他にもあります。 また、x >> --count & 1 は
(x >> --count) % 2 と書くこともできます。
x が unsigned なので、コンパイラの最適化により & 1 と
同じコードになるでしょう。