2019年5月23日木曜日

雑記

<<追記20190523
今日は定刻通り帰れた。何とか夕食までに電子書籍を済ませたい。
それで平日の日課は終える。まだチョコチョコと読書するぐらいである。

今日はデータ型について述べようと思う。
昨日はint型とchar型がもうすでに出ている。
int型は符号尽き整数型でマイナスの整数も表現出来る。
なのでデクリメントも出来る。--iとかi--である。
先にマイナス1加算して代入と代入してからマイナス1加算する。

ここでint型は十進数なのだけど計算器は二進数である。
オンとオフで1と0になる。32bitがintだと
32bitとは1と0のどちらかが32個あるのである。
そしてintの範囲は-2147483648 から +2147483647となる。
二進数範囲だと
‭1000,0000,0000,0000,0000,0000,0000,0001
から
‭0111,1111,1111,1111,1111,1111,1111,1111‬

ここで二の補数とは
ある数とある数の二の補数足して0になるものがある数の二の補数なのである。
なので上の二進数の範囲がちょうど二の補数になっている。
二つの二進数を足すと一番上の桁を無視してすべて0になる。
それが二の補数である。一番上の1がマイナス符号である。

10の補数も求められる。
02147483647の十の補数は97852516353で一番上の9がマイナス符号ちょうど足すと1000,0000,0000になり
0と計上する。

何でこんな事するのかというとマイナスの概念が足し算で表現出来るからである。
ひたすら計算器は足して計算出来る。
人間が引き算をあきらめたら十の補数を求めてひたすら足せば良い。
多分そんな事は人間はやらなく計算器は二の補数はやると言う事である。

話は脱線した。何かこれはこれで情報処理の試験に出てくる。
andとorとnotで計算器は出来ている。
0と1をかけ算と足し算と反転で計算器は計算する。

他にはfloat型とdouble型がある。小数点をあらわす型で
floatが単精度double型が倍精度である。
結局計算器は0と1の有効範囲しか表現出来ないので
有効数字がfloat型とdouble型で違ってくる。
その範囲におさまるように計算しなければいけない。
それ以上だとint型と同じく自分で数値計算するようなプログラムを作る必要が出てくる。

文字列はCString型とかstring型とか他にも色々プログラムで異なっている。
時間に関する型とか他にもたくさんのプログラムの型がある。

今日はこの辺にしとく。なんか色々書く必要が出ているような気がして
今後も前途多難だなあというのが今日の実感である。
ボチボチやりたい。
<<追記20190523end

0 件のコメント:

コメントを投稿