プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 新品価格 |
プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
を読んだ
マスタカばなぜ動くのか
そう愛のためである
そんなわけで本書を読んでみた
以下、感想
・本書の内容
プログラムがどうやって動くのか説明した本
コンパイルしたコードがどうなるかや
CPUでどうやって計算してるか
みたいなところをカバーした本
情報工学みたいな話も出てくる
本書で役に立ったこと
・比較の計算
XXXとYYYの比較は
CPUの内部で
XXX – YYYして値がマイナスかどうかで判断してる
・シフト演算
2桁の左シフトは4倍
3桁の右シフトは1/8倍
論理右シフトは通常通りシフトして上位に0を入れる
算術右シフトは上位補数が1だったら1を上位に入れてシフトする
・補数
Aのマイナスの値は
すべてのビットを反転させて1を足す
これが補数
また0が+側になるので
shortは-32768〜32767
と+側が1少なくなる
・小数点
符号部:1ビット
指数部:8ビット or 11ビット
仮数部:23ビット or 52ビット
・小数の演算方法
正確な小数の演算をするなら小数を一度整数に直してから
再度小数に直す処理が必要
・メモリの仕組み
データ信号とアドレス信号とRDとWRのピンがある
データ信号でビットを表現して、アドレスに保存する
・ポインタ
ポインタはアドレスの場所を示すだけでなく
アドレスから何バイトのデータを読み書きするかということを表す
・ハフマン法
出現頻度が低いものから木にしていく圧縮法
・ports
FreeBSDのportsはソースコードを落としてきて
これを自分の環境でコンパイルして実行環境を作る仕組み
・擬似乱数
線形合同方式
Ri+1 = (a * Ri + b) mod c
本書は大変役に立ちました
プログラミングが一通りかけるようになったら
本書を読んでみることで理解が一段と深まるかなと思います
学校で学んだことの復讐にもなるのでおすすめです
関連記事:
- Docker ComposeでMySQL + phpMyAdminをやってみた
- androidアプリをリリースしたらRejectされた話
- no matching manifest for linux/arm64/v8 in the manifest list entries