0Pricing
Cryptology Academy · レッスン

2進数と16進数の基礎

10進数、2進数、16進数を自信を持って相互変換します。

「2進数と16進数の基礎」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

暗号技術はビットとバイトを扱います。このレッスンでは、あらゆる暗号アルゴリズムの基本言語である2進数と16進数に習熟します。

なぜ2進数なのか

コンピューターはすべてを0と1で保存します。ビットは1桁の2進数です。バイトは8ビットで、0〜255の値を保持します。すべての暗号処理はこのレベルで行われます。

2進数から10進数へ

2進数1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8+0+2+1 = 10進数の11です。各ビットの位置は2のべき乗を表し、右端のビット(2⁰)から始まります。

10進数から2進数へ

42を2進数に変換します:42÷2=21r0、21÷2=10r1、10÷2=5r0、5÷2=2r1、2÷2=1r0、1÷2=0r1。余りを下から上に読み取ると、101010になります。

16進数の基礎

16進数では、0〜9とA〜Fの16個の数字を使います(A=10、B=11、...、F=15)。1桁の16進数は4ビット(ニブル)を表します。2桁の16進数は1バイトを表します。

2進数から16進数へ

2進数を右から4ビットのニブルに分けます: 10111010 → 1011 1010 → B A → 0xBA Python: hex(0b10111010) → '0xba'

暗号技術における16進数

SHA-256は32バイトを64個の16進文字で表示します。AES-128の鍵は16バイトで、16進数では32文字です。16進数は暗号値を表示するための共通形式です。

Pythonでの変換

bin(255) # '0b11111111' hex(255) # '0xff' int('ff', 16) # 255 bytes.fromhex('deadbeef') # b'\xde\xad\xbe\xef' 'deadbeef'.upper() # 'DEADBEEF'

バイト順序:ビッグエンディアンとリトルエンディアン

ビッグエンディアンでは、最上位バイトを先に格納します。リトルエンディアンでは、最下位バイトを先に格納します。ネットワークプロトコル(TCP/IP)はビッグエンディアンを使い、x86 CPUはリトルエンディアンを使います。

XORのプレビュー

XORはビット単位で動作します:0101 XOR 0011 = 0110。16進数では、0x05 XOR 0x03 = 0x06です。XORはAES、ストリーム暗号、ハッシュ関数で使われる基本的な演算です。

暗号でよく使う16進数の値

マジックバイトはファイル形式を識別します。PDFは0x25504446で始まり、PNGは0x89504E47で始まります。SHA-256の初期化値のような暗号学的定数も、16進数で指定されます。

確認問題

16進数0xFFの10進数での値はいくつですか?

まとめ

すばらしい成果です!これで10進数、2進数、16進数を相互に変換できるようになりました。次は公開鍵暗号の数学的基盤であるモジュラー算術に取り組みます。

よくある質問

「2進数と16進数の基礎」レッスンは無料ですか?

はい。「2進数と16進数の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「2進数と16進数の基礎」で何を学びますか?

10進数、2進数、16進数を自信を持って相互変換します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「2進数と16進数の基礎」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 2進数と16進数の基礎
  2. 剰余算の基礎
  3. 素数と素因数分解
  4. GCD、Eulerのトーシェント関数と数論入門
← Cryptology Academyに戻る