回答受付が終了しました

あのc言語にとって10進数は整数を表すものなのでしょうか?

C言語関連66閲覧

回答(7件)

1

10進数は「ヒトが使用する数字の表現方法のひとつ」。 データ長もエンディアンも無視した説明には要注意。 コンピュータが行うlowレベルな演算(加減算・論理演算)はワイヤーロジックの世界なので、「2進数で処理される」というのは単なる『比喩的表現』に過ぎないという点も注意。

1人がナイス!しています

0

159は(多分)10進数であり、そしてC言語にとってもそれ以外にとっても整数です。159は2進数で10011111と表すことが出来ます。 (159)10進と(10011111)2進は同じ値です。 (最近の)C言語では、159==0b1011111 は1を返します。同じ値なので。 10進数の1.9375は整数ではありません。C言語にとってもそれ以外にとっても。1.9375は2進数で1.1111と表すことができます。 (1.9375)10進と(1.1111)2進は同じ値です。 ただし、C言語では整数でない2進数表記を扱う手段を標準では持っていません。 N進数というのは、数値の表記の仕方の規則というだけです。赤い果物をappleと呼ぼうとリンゴと呼ぼうとその果物が別のモノに変化するのでないのと同様、2進数と10進数のどちらで表記しようと値は変わりません(ただ、表記に無限の桁数を必要とする場合はあります)。 整数かどうかと10進数かどうかは全く関係しない事象です。C言語においても、それ以外においても。

0

10進数は数の表記法の一つでc言語とは関係ない コンピュータの内部ではすべて2進数で処理されます。 int x=10; と書いた場合は x には2進数で 0000 0000 0000 0000 0000 0000 0000 1010 と代入されます。 printf("%d",x)とすれば上記2進数を10進数と解釈して10と表示します printf("%o",x)とすれば上記2進数を8進数と解釈して12と表示します printf("%x",x)とすれば上記2進数を16進数と解釈してaと表示します 上記3例の表示(10、12、a)は全て整数です。 0000 0000 0000 0000 0000 0000 0000 1010 これも整数です。

2

いいえ。 C言語でもそうで無くとも関係無く、 10進数であることと、整数である事の間には、何ら繋がりはありません。 10進数だから整数を表すと言うようなことはありません。

2人がナイス!しています