
No.6ベストアンサー
- 回答日時:
★アドバイス(怒)
・自分でちょっとは考えましょう。
>// 2進数→10進数の変換
>decimal = 0;
>for ( i = 0 ; binary[i] != '\0' ; i++ ){
> number = (binary[i] - '0'); // 文字→数値に変換
> decimal = (decimal * 2 + number); // 最下位の桁から10進数値を作成
>}
前回の質問でここの部分理解できました?
ちゃんと理解できていれば『10進数6桁の文字を…』も同じ要領で行えますが…。
なぜ上記の方法で『2進数→10進数の変換』が行えるかをもう一度考えて下さい。
そうすれば10進数にするには何処の1箇所を書き換えれば対応できるかも分かります。
>サンプルコードを元に説明していただけると助かります。宜しくお願いします。
↑
前回のサンプルを見直しなさい。(怒)
http://oshiete1.goo.ne.jp/qa3701336.html→『【続】コマンドライン引数を使って2進数を10進数に変換させたい』
宿題のようですが、前回は『binary.cpp』をご自分の考えて作成しているでしょ。
今回も作成しているソースがあれば補足にでも載せて下さい。
>この問いには、どのような意味、学習内容が含まれているのでしょうか?
↑
これはね。
n進数とか、10進数とかのコンピュータの数値表現をちゃんと理解しているかを問う問題だと思います。
きちんと理解していれば2進数、10進数以外にも対応できますので。
mai-07_maiさんはまだ文字列と数値の相互変換を上手く理解していないようです。
文字列では'0'~'9'の文字コード、数値は0~9の値です。
> number = (binary[i] - '0'); // 文字→数値に変換
> decimal = (decimal * 2 + number); // 最下位の桁から10進数値を作成
↑
この2行が『2進数→10進数の変換』で重要な部分です。
だからこの2行の一箇所を書き換えれば『10進数6桁の文字列→10進数表示』も簡単です。
良く考えてみて下さい。
・以上。すごく参考になったでしょう。ね。
参考URL:http://oshiete1.goo.ne.jp/qa3701336.html
Oh-Orangeさま
mai-07_maiと申します。
いつも親切な、ご説明ありがとうございます。
C言語の勉強を初めて3週間の超初心者です。回りに相談出来る方がいない為、この掲示板をお借りして相談してます。アドバイスしてくれた内容を全て理解は出来ていませんが調べながら地道に学習してます。風邪でダウンしてしまい、お返事が遅くなりまして申し訳ございません。機会があれば是非、今後もアドバイスくださいませ。
No.5
- 回答日時:
★例えば、1という《表記のあるキー》を押したとき、同時にコンソールに1と表示されますよね。
この表示された1は、数字の1(16進で0x01)ではなく、文字の1(同 0x31)です。この対応にはアスキーコードが用いられており、「約束事」です(参考URL)。
★123456と6つのキーを押し(Enter)、プログラムでこれを文字列として取得すると、16進で 0x31,0x32,0x33,0x34,0x35,0x36,(0x00)というコードの連なりが得られます。
☆課題は、この文字列を「数字の10進数」に「変換」だよね。← 関数も用意されているし、・・簡単(サンプルコード略)。
>どのような意味、学習内容が含まれているのでしょうか?
★キーボードからの入力により数値を得る場合、プログラムには《どんなことが考慮されていなければ》を◆考えろということでしょう。
・テンキー以外のキーが押されたときの対応。
・6桁の確認。
・負の数、(実数)への対応。
・(入力終了処理)
・(short は、-32768~32767)
★要は、人間は誤りを犯すので、「正しく入力しろ(誤りを犯すな)」と【しつけ】るのではなく、「誤った入力は受け付けない」【しかけ】をプログラムに施せ、ということです。
☆直接キーボード入力を数値化する入力関数もありますが、これは使わない。← 理由判るよね。
参考URL:http://e-words.jp/p/r-ascii.html
No.4
- 回答日時:
1.エラー処理(「10進数6桁」ではない入力があった場合)について学ぶ。
2.「キーボードからの入力」は「文字列として受け取る」ので「文字列を数値にする方法」を学ぶ。
3.「6桁の10進数」を格納するのに必要な数値型は何型なのかを学ぶ。
4.「数値を表示させる方法」を学ぶ。
>サンプルコードを元に説明していただけると助かります。
サンプルコードの提示は「課題の丸投げに対し、課題の解答を提供する行為」になるので駄目です。

No.3
- 回答日時:
(1)文字を入力させる。
↓
(2)入力した文字に数字以外が有ったら、メッセージを表示して(1)に戻る。
↓
(3)入力した文字が5文字以下又は7文字以上の場合はメッセージを表示して(1)に戻る。
↓
(4)入力した文字を数字に変換する。
(桁あふれに注意する。)
↓
(5)変換した数字を表示する。
こんな感じでしょうね…。
No.2
- 回答日時:
背景情報が全く分からないのでいろいろな解釈が可能です。
> キーボードから
「標準入力から」ではないので、環境依存のライブラリ関数を使用するか、ハードウェアを直接制御することを期待している可能性があります。
> 数字の10進数で表示させる。
これも「標準出力」に出力するのではなく「表示させる」ですので、表示デバイスを制御させようとしているのでしょうか。
あるいは、GUIで描画することを期待しているのでしょうか。
No.1
- 回答日時:
問題そのままコードにすると、
char str[256];
scanf("%6s", str);
printf("%s", str);
か。でもこれって意味ないよなぁ…
という感じで、あなた同様、私も問題の日本語の理解に苦しみますが、
おそらく出題者は次のようなことを問いたかったのではないでしょうか?
「キーボードから文字列として6桁の10進数を受け取り、それを表示するときは文字列としてではなく数値として扱いなさい」
要するに、文字列として受け取った後、なんらかの変換処理をして数値データにしろ、ということだと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) 【関数】選択した文字列にしたがって、文字を選んで表示する 2 2023/07/13 22:44
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 08:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
std::stringからLPCWSTR型への変換
-
EBCDIC⇒SJIS変換の方法
-
VS 2008(VB.NET)
-
「彡」って文字はなんという文...
-
JIS → S-JIS コード変換するには
-
ふりがなをアルファベット化す...
-
セル内の文字列が日本語か英語...
-
byte配列の内容をstringにコピ...
-
S-JIS → JIS コード変換するには
-
ExcelVBA実行後に時々落ちる
-
16進数で表示
-
数値のパック10進数の変換に...
-
accessでJISコードを求める関数
-
pbmの表示の仕方。
-
Cでバイナリデータを変換
-
絶対パスを相対パスに
-
X86アセンブラで 16進数を10進...
-
error C2679 がとれません><
-
Perlコードを、自動的にPHPコー...
-
英数字を含む文字列(0-9,A-Z)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
「彡」って文字はなんという文...
-
VS 2008(VB.NET)
-
フォームのコントロールのバッ...
-
ExcelVBA実行後に時々落ちる
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
Excelマクロにて30分単位の計算...
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
-
「髙(はしごたか)」を文字コー...
-
S-JIS → JIS コード変換するには
-
%fと%gについて
-
PL/SQLでSJISの文字コードを取...
-
JIS → S-JIS コード変換するには
-
RubyでUTF8のコード値を文字に...
-
英数字を含む文字列(0-9,A-Z)...
おすすめ情報