0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSAPP Data Labの振り返り

0
Posted at

はじめに

CSAPPのdata labを全て解いたので、その感想を記事にしています。
これから解こうという人の参考になればと思っています。

CSAPPについて

CSAPPとは、「Computer Systems: A Programmer's Perspective」という本のことです。
この本は、カーネギーメロン大学の講義をもとに、コンピュータのアーキテクチャについて説明しています。
日本語版も発売されています。
teach yourself computer scienceというサイトで、コンピュータアーキテクチャの教科書としておすすめされています。
CSAPPの特徴は、下記です。

  • 分厚い
  • すべての練習問題の解答が書いてある
  • HPにLab(演習)や、本に書いてあるコード、関連する記事のリンクが記載されている
  • ハードウェアを作る観点ではなく、利用する側(プログラマ)の観点で書いている

Data Labについて

Data Labは、使える演算子を制限されたうえで、指定された関数を実装します。
実装する関数の例は、下記の通りです。

  • 数値の絶対値を求める
  • 2の補数の最小値を求める

なおData LabではC言語を使用します。

感想

Data Labの難易度は高めだと感じました。
簡単な問題もありますが、多くは解法を思いつかないと、どうしようもない問題です。
そのため、ペンと紙を片手に、うんうんと頭をひねることになります。

解くために必要な知識

解くために必要な知識は、比較的少なめです。

  • C言語のビット演算子(&, |, ^, ~, <<, >>)の使い方
  • C言語の論理演算子(!)の使い方
    • !xはxが0なら1、0以外なら0
    • !!xはxが0なら0、0以外なら1
  • 特定のビットを立てたいなら、value | mask
    • maskは立てたい位置のビットを1にする
  • 最上位ビットだけを立てたいなら、1 << 桁数 - 1
    • 例:32bitなら1 << 31
  • 最上位ビットを全体のビットにコピーしたいまら、x >> 桁数 - 1
    • 例:32bitならx>>31
  • ド・モルガンの法則
    ※ CSAPPに書いてある内容(例:浮動小数点をどうビットで表すか)は省いています
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?