No.1ベストアンサー
- 回答日時:
17以上の文字変数 char buf[17] ということですよね?
良いのではないでしょうか。
ただ、個人的には入力する人が何桁入力するのかわからないので、危険防止のためにbuf[100]位確保しておくと、変な入力による実行時エラーを最小限にくい止められます。
配列に入っているのは、"文字"の 0 or 1 なので文字コードは 0x30 or 0x31 ゛ですね。
これから数字に直す方法は、switch文を使って処理自体を分けることも出来ますし、
そのまま計算で求める(つまり 0x30 引くと 0, 1という数字が得られる)方法もあります。
気をつけるのは 2 とか a とか全然違う文字を入力されたときの対処方法ですね。
もう一つ2進数を入力するときに、 <space> 1101 とか 1101 <space> と空白が入力されている場合に、エラーとするのか、スペースをあらかじめ除去しておくのか、仕様を決めましょう。
速度を気にしなければ私ならループを回して switch(buff[i]) でつくるかな?
(0,1以外の文字、スペースの処理などのために)
こつは上位の桁から計算するとエレガントですね。
(なぜなのかは考えてみてください。)
ご回答ありがとうございます。
>気をつけるのは 2 とか a とか全然違う文字を入力されたときの対処方法ですね。
これについては考えていたのですが。
>もう一つ2進数を入力するときに、 <space> 1101 とか 1101 <space> と空白が入力されている場合に、エラーとするのか、スペースをあらかじめ除去しておくのか、仕様を決めましょう。
これについては考えてもいませんでした、説明も大変わかりやすくとても助かりました。ありがとうございました。
No.3
- 回答日時:
> 自分なりに考えた結果は、[17]以上の配列を用意してそこに格納する、
> その格納された桁数をstrlenで割り出してからひとつずつ2の重みで計算をしてそれを足していく・・・
> こんな考え方でいいのでしょうか?
ここまで考えてるんだったら、書けばいいのに。
間違っているか否かは、コンパイラと実行結果が教えてくれます。ヒトに教えてもらう前にこのくらいやりましょうよ。
ご回答ありがとうございます。
確かにそのとおりですねぇ・・・
いろいろと書いては見たのですが、本当にこのやり方でいいのかを検証したかったんです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でstringをポインタとして渡す
-
プログラムによく出てくるst...
-
C++で文字列の右端から特定の文...
-
VB6.0でのバイナリデータの扱い...
-
16進数を2文字ずつ配列に格納し...
-
sprintf関数について教えて下さ...
-
シリアル通信で0x00を送信した...
-
Excelシートを固定長のテキスト...
-
数字の入った配列をファイルへ...
-
K&Rのp.95のgetop(char s[])
-
WSH(VBS)でJSONの文字列を読み...
-
引用符と二重引用符
-
c#で他のアプリの文字入力フォ...
-
構造体→文字列→構造体 をする方法
-
_tcscpy_s(wcscpy_s)の第二引数...
-
C言語のポインタに直接アドレス...
-
CStringからchar*への型変換に...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
char*を初期化したいのですが
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムによく出てくるst...
-
C#でstringをポインタとして渡す
-
nullと""、\\0とEOFの違いにつ...
-
WSH(VBS)でJSONの文字列を読み...
-
VB6.0でのバイナリデータの扱い...
-
TCL言語で文字列検索方法を教え...
-
C++で入力した文字列から数字を...
-
シリアル通信で0x00を送信した...
-
16進数を2文字ずつ配列に格納し...
-
char型配列の最大要素数
-
[C++]WCHARの1文字目しか表示で...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
構造体→文字列→構造体 をする方法
-
%dなどの違い
-
数字の入った配列をファイルへ...
-
c#で他のアプリの文字入力フォ...
-
引用符と二重引用符
-
Shift_JIS(16進)を文字に変換す...
-
CSVファイルの「”」について
-
AnsiStringについて
おすすめ情報