マイクロソフトビジュアルスタジオで
実行結果が 実数:1234 16進数:ffff 8進数:17777 a=1234 b=-1 c=-1と表示させる
プログラムを作ろうと思ったのですが
#include<stdio.h>
void main(void)
{
int a,b,c;
printf("整数:"); scanf("%d" , & a);
printf("16進数:"); scanf("%x", &b);
printf("8進数:"); scanf("%o", & c);
printf("a=%d b=%d c=%d",a,b,c);
}
このように打つと、 b、c共に65535と表示されてしまいます・・・
どこが間違ってるのか教えていただけないでしょうか?
ffff=10進数でマイナスなどの意味は分かるのですが
No.1
- 回答日時:
>b、c共に65535と表示されてしまいます・・・
正しい動作ですよね?
printf()関数は「指定された書式」で表示していますよ。
>printf("a=%d b=%d c=%d",a,b,c);
aもbもcも…10しか数文字列で出力しろ。
と指示していますよね?
"%d"で。
>ffff=10進数でマイナスなどの意味は分かるのですが
型によるので正しい理解でもないような……
No.4ベストアンサー
- 回答日時:
> ffff=10進数でマイナスなどの意味は分かるのですが
間違いはここです。理解が不十分です。
負の整数を表現するのに、「(2進法での)2の補数」と呼ばれる表現方法がよく使われています。
http://ja.wikipedia.org/wiki/%E8%A3%9C%E6%95%B0
http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C …
0xffffが-1を表わすのは、16ビット符号付き整数のときです。
17bit以上の整数ならば、正の整数(10進の)65535です。
また、16ビットでも「符号無し(unsigned)」なら正の整数65535になります。
intは「実行環境で自然に扱えるビット幅」になっているケースが多いです。
最近一般人が触れるようなコンピュータは32bitが多いですから、intが32bitになっているケースが多いです。
32bitなら、0xffffは65535であり、表示の通りです。
実際に何ビットかは、intが扱える数値の範囲を調べればわかります。
limit.hをincludeして定数INT_MAXが(signed)intの最大値です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
error C2143: 構文エラー : ';'...
-
hit&bolwのプログラミングがで...
-
困ってます!Cプログラミングに...
-
万年カレンダーのC言語プログラ...
-
C言語での、年複利の計算方法...
-
(C言語)めちゃくちゃな値にな...
-
ヘロンの公式を作ったプルグラ...
-
ブラックジャック
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
平均合計偏差値標準偏差の出し方
-
C言語
-
関数について
-
printf()文の書式
-
C言語で四則演算を使って10を作...
-
if文がコンパイルエラーを起こ...
-
scanfで正しい値を入力できない
-
DOS画面でテキストカーソルの位...
-
C言語で、「自然数nを入力し、n...
-
2進数の乗算と除算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報