-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBCD1.py
125 lines (102 loc) · 3.86 KB
/
BCD1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
from manim import *
class WriteBinary(Scene):
def construct(self):
# write binary coded deciaml and uncreate it
text = Text("Binary Coded Decimal Code or BCD")
text.set_color(BLUE)
self.play(Write(text))
self.wait()
self.play(Unwrite(text))
self.wait()
###############################
# Write 748 in BCD and each digit is a number
text = MathTex("(748)_{10}").shift(2.2 * UP)
n7 = Text("7").shift(1.2 * UP).shift(2.5 * LEFT)
n4 = Text("4").shift(1.2 * UP)
n8 = Text("8").shift(1.2 * UP).shift(2.5 * RIGHT)
self.play(Write(text))
self.wait()
self.play(Write(n7), Write(n4), Write(n8))
self.wait()
###############################
n78 = Text("8").shift(0.4 * UP).shift(3.5 * LEFT)
n74 = Text("4").shift(0.4 * UP).shift(3 * LEFT)
n72 = Text("2").shift(0.4 * UP).shift(2.5 * LEFT)
n71 = Text("1").shift(0.4 * UP).shift(2 * LEFT)
self.play(Write(n78), Write(n74), Write(n72), Write(n71))
self.wait()
###############################
# show how binary 7 is decoded
u4 = Underline(n74)
u2 = Underline(n72)
u1 = Underline(n71)
self.play(
Animation(n78),
Animation(n74),
Animation(n71),
Write(u4),
Write(u2),
Write(u1),
)
self.wait()
###############################
# write didgits beneath the number
self.play(
Write(Text("0").shift(0.25 * DOWN).shift(3.5 * LEFT)),
Write(Text("1").shift(0.25 * DOWN).shift(3 * LEFT)),
Write(Text("1").shift(0.25 * DOWN).shift(2.5 * LEFT)),
Write(Text("1").shift(0.25 * DOWN).shift(2 * LEFT)),
)
self.wait()
###############################
# show how binary 4 is decoded
n48 = Text("8").shift(0.4 * UP).shift(0.7 * LEFT)
n44 = Text("4").shift(0.4 * UP).shift(0.2 * LEFT)
n42 = Text("2").shift(0.4 * UP).shift(0.3 * RIGHT)
n41 = Text("1").shift(0.4 * UP).shift(0.8 * RIGHT)
self.play(Write(n48), Write(n44), Write(n42), Write(n41))
self.wait()
###############################
u4 = Underline(n44)
self.play(
Animation(n44),
Write(u4),
)
self.wait()
###############################
self.play(
Write(Text("0").shift(0.25 * DOWN).shift(0.7 * LEFT)),
Write(Text("1").shift(0.25 * DOWN).shift(0.2 * LEFT)),
Write(Text("0").shift(0.25 * DOWN).shift(0.3 * RIGHT)),
Write(Text("0").shift(0.25 * DOWN).shift(0.8 * RIGHT)),
)
self.wait()
###############################
# show how binary 8 is decoded
n88 = Text("8").shift(0.4 * UP).shift(1.9 * RIGHT)
n84 = Text("4").shift(0.4 * UP).shift(2.4 * RIGHT)
n82 = Text("2").shift(0.4 * UP).shift(2.9 * RIGHT)
n81 = Text("1").shift(0.4 * UP).shift(3.4 * RIGHT)
self.play(Write(n88), Write(n84), Write(n82), Write(n81))
self.wait()
###############################
u8 = Underline(n88)
self.play(
Animation(n88),
Write(u8),
)
self.wait()
###############################
self.play(
Write(Text("1").shift(0.25 * DOWN).shift(1.9 * RIGHT)),
Write(Text("0").shift(0.25 * DOWN).shift(2.4 * RIGHT)),
Write(Text("0").shift(0.25 * DOWN).shift(2.9 * RIGHT)),
Write(Text("0").shift(0.25 * DOWN).shift(3.4 * RIGHT)),
)
self.wait()
###############################
# show the final output
mText = MathTex("(748)_{10} = (011101001000)_{2}").shift(1.5 * DOWN)
self.play(Write(mText))
self.wait()
self.wait()