So-net無料ブログ作成
型について ブログトップ

型について(double)6 [型について]

今日はdouble型です。

これもfloat型と同様に小数点が代入できる型です。
float型と何が違うのでしょうか?

型:double
変数:a,b,c,d,e,f
出力データ変換形式:%f
小数点以下:20桁

書き方例:printf("a=%.20f\n",a);

でプログラムを組んで確認したいと思います。
13012401.jpg
実行結果
13012402.jpg
・小数点以下が12桁となりました。
・左から17桁目の数字は18桁目を四捨五入した数字
となりました。
(正確な数字は16桁までしか表示されませんでした。)

ということでdouble型をまとめると
・小数点以下の桁が代入可能
・正確な表示は16桁までとなる
(float型は7桁までが正確な表示)
nice!(5)  コメント(2)  トラックバック(0) 
共通テーマ:blog

型について(float)5 [型について]

今日はfloat型です。

小数点が代入できる型です。

型:float
変数:a,b,c,d,e,f
出力データ変換形式:%f

でプログラムを組んで確認したいと思います。
13012301.jpg
実行結果
13012302.jpg
・自動的に小数点以下が6桁となりました。
・小数点以下は6桁までしか表示されませんでした。
・左から7桁目の数字は8桁目を四捨五入されました。
(正確な数字は7桁までしか表示されませんでした。)

小数点以下の桁数を増やすには
「.桁数」で小数点以下の桁数を指定します。
例:printf("%.20f",a);

プログラムを組んで確認してみます。
13012303.jpg
実行結果
13012304.jpg
小数点以下の桁数が7、8、9・・・・12となりましたね。

ところで、桁数を増やしてもやはり7桁までしか
正確な数字が表示されません。
これはどうしてでしょうか?
色々調べましたが難しくてすぐには解りませんでした。
あとでゆっくり調べてみます。

ということでfloat型をまとめると
・小数点以下の桁が代入可能
・正確な表示は7桁までとなる
nice!(5)  コメント(0)  トラックバック(0) 
共通テーマ:blog

型について(long)4 [型について]

今回はlong型について確認します。

long型は倍長整数型とも言われるため、

恐らく、int型(整数型)の倍の整数が扱えるのではなかと

思います。

型:long
変数:a,b,c,d,e,f,g,h,i,j
出力データ変換形式:%d

でプログラムを組んで確認したいと思います。

13012101.jpg
実行結果
13012102.jpg
・-2147483649 → 2147483647
・2147483648 → -2147483648
となり異常表示となりました。
上記2整数以外は正常表示でした。
つまり、long型は-2147483648~2147483647の
整数が代入可能ということです。
これはint型と同じです。
なぜ、同じ範囲の整数を代入するのにint型とlong型が
あるのか調べてみました。

int型は「short int型」、「int型」、「long int型」があるそうです。

①long int型
-2147483648~2147483647の整数が代入可能
な型とのことです。

②int型
DOS時代はシステムが 16ビットのため、-32768~+32767の
整数しか代入出来なかったそうです。
今はPCの性能が良くなってint型でもlong型と同じ範囲の
整数を代入できるようになったのではないかと思います。

③short int型
-32768~+32767の整数が代入可能な型とのことです。
確認してみましょう。
13012103.jpg
実行結果
13012104.jpg
・-32769 → 32767
・32768 → -32768
となり異常表示となりました。
上記2整数以外は正常表示でした。
調べたとおり-32768~32767の整数が代入可能と
いうことです。

なぜ、代入できる整数の範囲が大きかったり、
小さかったりする型が存在するのでしょうか?
これも調べてみると
昔はPCの性能が低かったためint型は代入できる
整数がshort int型と同様に-32768~32767だったそうです。
PCの性能が高くなるとint型の代入できる整数は
long int型と同様に-2147483648~2147483647となった。
とのことです。
ということは、今のほとんどのPCでは使い分ける必要は
なく、int型で用が済んでしまうということですね。
nice!(6)  コメント(0)  トラックバック(0) 
共通テーマ:blog

型について(int)3 [型について]

昨日、出力データの変換形式のやり方が

わかったので、ちょっとint型に戻って

8進数と16進数を表示できるか確認したいと思います。

型:int

変数:a,b,c,

出力データ変換形式は
・10進数:%d
・8進数:%o
・16進数:%x
でやってみたいと思います。

プログラムを組む前に、

10進数、8進数、16進数、2進数を確認しましょう!

①10進数
 これは、いつも私たちが使用している数字ですね。
 下位の位が9を超えると上位の位が0から1となり
 カウントされていきます。
 例えば10進数の「18」は
 (10×1)+(1×8)=18となります。

②8進数
 これはほとんどの人が聞きなれない言葉だと思います。
 理系の人も8進数はほとんど使わないと思います。
 これは下位の位が7を超えると上位の位が0から1
 となりカウントされていきます。
 10進数の「22」を8進数で表すと「26」となります。
 8進数の「26」を10進数に変換すると
 (8×2)+(1×6)=22となります。

③16進数
 これは理系の人であれば勉強したことがあるかと思います。
 下位の位が15を超えると上位の位が0から1となり
 カウントされていきます。
 10進数の「58」を16進数で表すと「3a」となります。
 ん?まちがえ?
 間違えではありません。
 16進数では0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fが数字なのです。
 16進数のa~fは10進数で10~15を表します。
 16進数の「3a」を10進数に変換すると
 (16×3)+(1×a(10))=58となります。

④2進数
 これは、コンピュータを使用する人であれば何となく
 聞いたことがあるのではないでしょうか。
 コンピュータは「0」と「1」で出来ている!!
 そう、「0」と「1」で表すのは2進数です。
 10進の「42」を2進数で表すと「101010」となります。
 2進数の「101010」を10進数に変換すると
 (32×1)+(16×0)+(8×1)+(4×0)+(2×1)+(1×0)=42となります。
 
 2進数は出力データ変換形式はないみたいですが、
 コンピュータと関係の強い表し方なので
 8、10、16進数の説明と一緒にしました。

 ちなみに
 秒は60進数となります。
 60秒は1分だからです。
 分も60進数です。
 60分は1時間だからです。
 それでは時間は何進数でしょうか?
 答えは24進数です。
 24時間は1日だからです。
 それでは日は何進数?
 365進数!
 365日は1年だから。
 それでは月は何進数?
 12進数!
 12カ月は1年だから。
 年は何進数?
 10進数です。

ではプログラムを組んで確認してみましょう。
13011701.jpg
実行結果
13011702.jpg
問題なく、10進数、8進数、16進数が表示できました[わーい(嬉しい顔)]


nice!(10)  コメント(0)  トラックバック(0) 
共通テーマ:blog

型について(char)2 [型について]

今日はchar型を確認してみます。

char型は文字を扱う場合に使用する型だそうです。

変数は
hiragana
katakana
eigodai
eigosyou
kigou
suuji
とします。
(変数はあらかじめ決まっている小文字英語の並び
(例えば、int等)を使用しなければなんでも
大丈夫のようです。)

書き方は
char hiragana;
char katakana;
char eigodai;
char eigosyou;
char kigou;
char suuji;

また、各変数に何かを代入するために
hiragana=O;
katakana=O;
eigodai=O;
eigosyou=O;
kigou=O;
suuji=O;  
※Oには数字や文字や記号が入ります。
を追加します。

さらに、printfは
printf("%c\n",変数)
というふうに書きます。

int型は%dでしたが、char型は%cとなるようです。
この%dとか%cは出力データの変換形式を
指定しているとのことです。

%c:1文字として出力する
%d:10進数で出力する
%x:16進数で出力する
%o:8進数で出力する
%f:小数点を含んで出力する
%e 指数形式で出力する
%s 文字列として出力する 文字列

つまり、1文字だけ出力したければ%cを
複数文字表示させたければ%sを使用すれば
いいということだと思います。
プログラムで確認してみましょう!

①ひらがな、カタカナ、英語、記号、数字の1文字を変数に代入し「%c」にて表示
1301141.jpg
ビルドでエラーとなりました。

文字の初めと終わりに「'」をつけると
ビルド可能でした。
1301142.jpg
実行結果
1301143.jpg
・あ → ■
・ア → A
・G → G
・g → g
・? → ?
・1 → 1
と日本語以外は正常表示されました。
char型の変数は英語(大小文字)、記号、数字しか
代入できないということですね。

②英語、記号、数字の複数文字を変数に代入し「%c」にて表示
1301144.jpg
実行結果
1301145.jpg
・GHI → I
・ghi → i
・@#& → &
・123 → 3
となり、複数文字の最後の文字が表示されました。
つまり、変数に複数文字が代入された場合、出力データ
変換形式が%cだと最後の1文字のみ表示されるということ
ですね。


③ひらがな、カタカナ、英語、記号、数字の1文字を変数に代入し「%s」にて表示
13011601.jpg
実行結果
13011602.jpg
ビルドは出来ましたがデバッグでエラーとなりました。
やはり日本語が原因と考えられるため日本語を
削除してもう一度確認します。
13011603.jpg
実行結果
13011604.jpg
だめです。エラーです
色々調べたら、型と変数と代入する文字の
書き方がこれまでと違うみたいです。

書き方を下記に変更してビルドしてみます。
char hiragana[]="あ";
char katakana[]="ア";
char eigodai[]="G";
char eigosyou[]="g";
char kigou[]="?";
char suuji[]="1";
13011605.jpg
成功ですね!!
実行結果
13011606.jpg
成功です!
・あ → あ
・ア → ア
・G → G
・g → g
・? → ?
・1 → 1
ひらがな、カタカナ、英語(大小文字)、
記号、数字全て表示できました。

④ひらがな、カタカナ、英語、記号、数字の複数文字を変数に代入し「%s」にて表示
13011607.jpg
実行結果
13011608.jpg
・あいう → あいう
・アイウ → アイウ
・GHI → GHI
・ghi → ghi
・@#& → @#&
・123 → 123
成功です!!


まとめると
・%cで一文字表示させる場合は
 代入する文字を「'」にて挟むことで表示される。
 ただし、日本語は不可
・%sで複数文字表示させる場合は
 変数の最後に「[ ]」を追加し、代入する文字を
 「" "」にて挟むことで表示される。
nice!(4)  コメント(0)  トラックバック(0) 
共通テーマ:blog

型について(int)1 [型について]

今回は変数を使用して色々表示させたいと思います。

そのためには今までのプログラムに変数
追加する必要があります。

今回は型と変数を
型 :int
変数:a,b,c,d,e,f
としてプログラムを書きます。
書き方は
int a;
int b;
int c;
int d;
int e;
int f;
又は
int a,b,c,d,e,f;

また、各変数(a~f)に何かを代入するために
a=O;
b=O;
c=O;
d=O;
e=O;
f=O;  
※Oには数字や文字や記号が入ります。
を追加します。

さらに、printfは
printf("%d\n",変数)
というふうに変えます。

「%d」は変数に代入された何かを表示するプログラム
「¥n(\n)」は改行のプログラム
「,変数(a~f)」は表示させたい変数を記入します。

~~~~~~~~~~~~~~~~~~~~~~~

int型は整数を扱う場合に使用する型だそうです。
ここで疑問がいくつかあります。
①マイナスの整数はいくつまで表示可能なのか。
②プラスの整数はいくつまで表示可能なのか。
③小数点を含んだ数字を代入した場合どうなるのか。
④文字を代入した場合はどうなるのか。
⑤記号を代入した場合はどうなるのか。

プログラムで確認しましょう!

①マイナス整数を代入
1301131.jpg
実行結果
1301132.jpg
・-1 → -1
・-123 → -123
・-123456 → -123456
・-2147483648 → -2147483648
と正常に表示されました。
・-2147483649 → 2147483647、
・-10000000000 → -1410065408
と異常表示されました。
つまり、int型のマイナス側は-2147483648までの
整数しか扱えないということですね。

②プラス整数を代入
1301133.jpg
実行結果
1301134.jpg
・1 → 1
・123 → 123
・123456 → 123456
・2147483647 → 2147483647
正常に表示されました。
・2147483648 → -2147483648
・10000000000 → 1410065408
と異常表示されました。
つまり、int型のプラス側は2147483647までの
整数しか扱えないということですね。

③小数点を含んだ数字を代入
1301135.jpg
実行結果
1301136.jpg
・-1.0 → -1
・12.3 → 12
・-123.456 → -123
・2147.483647 → 2147
・-21474.83648 → -21474
・10000000.000 → 10000000
と表示されました。
つまり、int型では小数点以下を切り捨てた
整数が表示されるということですね。

④文字を代入
1301137.jpg
・あ
・1234あ
・-586a
・-y95348778
・heidoshi
・ed54869ty
全てエラーとなりビルドに失敗しました。

文字を1文字にして初めと終わりに「'」をつけると
ビルド可能でした。
1301138.jpg
しかし、デバッグすると下記エラーウィンドウが
表示されました。
中止をクリックすると実行結果が表示されました。
1301139.jpg
実行結果
13011310.jpg
・'あ' → 33440 
・'a' → 97
・'A' → 65
・'ア' → 33601
と異常表示されました。
int型では「'」を入れても入れなくても
文字は表示できないということですね。

⑤記号を代入
13011311.jpg
・/
・---+
・+**
・%[]
・?¥@
・&$#
全てエラーとなりビルドに失敗しました。

初めと終わりに「'」をつけると
ビルド可能でした。
13011312.jpg
実行結果
13011313.jpg
・'/' → 47 
・'---+' → 757935403
・'+**' → 2828842
・'%[]' → 2448221
・'?¥@' → 16192
・'&$#' → 2499875
と異常表示されました。
int型では「'」を入れても入れなくても
記号は表示できないということですね。

まとめると-2147483648~2147483647の整数が
表示可能でそのほかの文字や記号は表示不可
ということです[わーい(嬉しい顔)]
nice!(6)  コメント(0)  トラックバック(0) 
共通テーマ:blog
型について ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。