情報のデジタル化

数値

for i in range(0,20):
    print(f'{i} => {i:08b}')
0 => 00000000
1 => 00000001
2 => 00000010
3 => 00000011
4 => 00000100
5 => 00000101
6 => 00000110
7 => 00000111
8 => 00001000
9 => 00001001
10 => 00001010
11 => 00001011
12 => 00001100
13 => 00001101
14 => 00001110
15 => 00001111
16 => 00010000
17 => 00010001
18 => 00010010
19 => 00010011
import numpy as np

num = 4 # 表現を確認したい実数

# 2進数表現に変換
bin_exp = np.binary_repr(np.float64(num).view(np.int64), width=64)
print(bin_exp)
0100000000010000000000000000000000000000000000000000000000000000

文字と文字列

ASCII

UTF-8

for c in "abc@123":
    print(c, '=', ord(c))
a = 97
b = 98
c = 99
@ = 64
1 = 49
2 = 50
3 = 51
chr(10).isprintable()

画像

from PIL import Image

# グレースケールの画像データを作成
img = Image.new("L", (20, 20), 128)
img # 画像の表示
from PIL import Image
import numpy as np

a = np.zeros((20, 20))
print(a)
img = Image.fromarray(a, mode="L")
img # 画像の表示
from PIL import ImageDraw

draw = ImageDraw.Draw(img)
draw.line((0, 0, 19, 19), fill=255, width=1)
img # 画像の表示