コンピューターサイエンス理論 - 2進数から10進数への変換
0 と 1 の列を数として読む
並んでいるのは 0 と 1 だけですが、桁ごとに決まった重みがあります。ON になっている桁の重みを足し合わせた数が、そのまま10進数の値です。
手で足しても同じ数になることを、次の図解で確かめます。
文字列で持っている2進数は、parseInt の第2引数に 2 を渡すと10進数になります。
parseInt("10101010", 2); // 1701 / 4
2 進数、論理演算、ビット演算、データ構造、計算量、メモリモデルなど、プログラミングの土台となるコンピュータサイエンスの理論知識を学べるコースです。プログラミングを始めたばかりの学習者や、CS の体系的な土台を作りたい現役エンジニアを対象としています。約 13 時間 (1 日 30 分 × 26 日) で 53 レッスンを修了でき、修了後はコードのパフォーマンスや設計判断の根拠を理解した上で実装できるようになります。
レッスン
53件
所要時間
約15分
ランク
初級
学習環境
ブラウザ完結
システム開発に必要なコンピューターサイエンスの理論知識を体系的に習得できます。
2 進数、論理演算、ビット演算、データ構造、計算量、メモリモデルなど、プログラミングの土台となるコンピュータサイエンスの理論知識を学べるコースです。プログラミングを始めたばかりの学習者や、CS の体系的な土台を作りたい現役エンジニアを対象としています。約 13 時間 (1 日 30 分 × 26 日) で 53 レッスンを修了でき、修了後はコードのパフォーマンスや設計判断の根拠を理解した上で実装できるようになります。
ネットワークの仕組み(TCP/IP、HTTP)を理解できる
データベースの設計原則を理解できる
システムアーキテクチャのパターンを学べる
セキュリティの基礎知識を習得できる
設計ドキュメントを読み解けるようになる
ブラウザ完結(インストール不要)
必要ツール: ブラウザ
テキストでの解説
1
レッスン
コーディングの問題
45
レッスン
クイズ問題
7
レッスン
ゆめさくコード編集部
プログラミング学習をもっと身近に。初心者から実務レベルまで、わかりやすいコンテンツをお届けします。
ゆめさくエンジニア / 現役ソフトウェアエンジニア。Ruby on Rails・Nuxt.js・Next.js・CakePHPなどの実務の開発をベースに、学習コンテンツを作成しています。
レッスンの最初に、図と短い言葉で学ぶ内容をつかみます。
コンピューターサイエンス理論 - 2進数から10進数への変換
並んでいるのは 0 と 1 だけですが、桁ごとに決まった重みがあります。ON になっている桁の重みを足し合わせた数が、そのまま10進数の値です。
手で足しても同じ数になることを、次の図解で確かめます。
文字列で持っている2進数は、parseInt の第2引数に 2 を渡すと10進数になります。
parseInt("10101010", 2); // 1701 / 4
コンピューターサイエンス理論 - 10進数から2進数への変換
10進数を 2 で割り、出てきた余りを下の桁から積み上げると2進数になります。割り算を止めるのは、商が 0 になったときです。
余りの列がどう桁に対応するのかを、次の図解で逆から確かめます。
JavaScript は toString(2) で一発ですが、中でやっているのは 2 で割り続ける手続きです。
(13).toString(2); // "1101"1 / 4
コンピューターサイエンス理論 - ビットAND演算でフラグ判定
真偽値をいくつも並べる代わりに、1つの整数の各桁へ設定を押し込められます。ある機能が有効かどうかを調べるのが AND の役目です。
この & がビット列に何をしているのかを、次の図解で8桁ぶん並べて見ます。
perm & WRITE が 0 かどうかだけを見ます。0 以外なら、その桁は立っています。
const READ = 1, WRITE = 2, EXEC = 4;
const perm = 5;
if (perm & WRITE) { /* 書き込める */ }1 / 4
コンピューターサイエンス理論 - OR / XOR でフラグを操作する
AND で読み出した設定を、今度は書き換えます。OR は桁を立て、XOR は立っている桁と消えている桁を入れ替えます。
2つの演算が同じマスクでどう割れるのかを、次の図解で押し比べます。
OR は何度かけても結果が変わりませんが、XOR は同じ値を2回かけると元へ戻ります。
let perm = 5;
perm = perm | 2; // 書き込みを許可する
perm = perm ^ 4; // 実行の可否を反転する1 / 4
動かしながら、仕組みや変化を目で確かめられます。
2進数から10進数への変換
2進数と10進数10進数から2進数への変換
cs-dec-to-binビットAND演算でフラグ判定
cs-bit-andOR / XOR でフラグを操作する
cs-bit-or-xor独学でプログラミングを学んできた人
を目指す人
なんとなく動くコードから卒業したい人
を目指す人
システム全体を見渡せるエンジニアを目指す人
を目指す人
先にこちらを通しておくと、つまずきにくくなります
このコースを終えたあとに進むと、無理なく続けられます
同時に進めると、理解が早くなる組み合わせです