Files
python-microbit/avanceret/binær_tæller/binær_tæller.py
Jan Lerking 84751ce823 Updated. /JL
2025-04-22 11:49:02 +02:00

52 lines
2.0 KiB
Python

from microbit import *
# Binære tal tælles altid fra 0
# Binære tal representeres med 0-ere og 1-ere - Derfor også kaldet 2-talssystem
# Binære tal læses altid fra højre mod venstre i følgende orden:
# 16-ere, 8-ere, 4-ere, 2-ere og 1-ere
# Et eksempel for værdien 13 oversat til binær
# 0 16-ere, 1 8-er, 1 4-er, 0 2-ere, 1 1-er
# | | | | |
# 0 1 1 0 1 = 01101 = 1 + 4 + 8 = 13
def get_binær(n):
bin_nummer = "00000:00000:00000:00000:00000"
# Vi starter med at formatere vores binære streng til 5 karakterer (5 led), hvilket giver n = max 31
# f.eks. hvis n er 10, bliver den binære værdi til "0b01010"
bin_num = bin(n).format(n, '25b')
# Vi fjerner "0b" fra strengen
# Herved bliver strengen til "01010"
# bin_nummer = "".join(reversed(bin_num[2:]))
bin_nummer = bin_num[2:]
for idx, n in enumerate(bin_nummer):
if idx % 5 == 0:
if idx == len(bin_nummer):
break
bin_nummer = bin_nummer[idx:] + ":" + bin_nummer[:idx]
# Vi erstatter "1" med "9", og tilføjer ":" og returnerer den nye streng
# Den returnerede streng bliver "09090:"
return bin_nummer.replace("1", "9")
def bin_taeller_v2():
for bb in range(100):
display.show(Image(get_binær(bb)))
sleep(100) #sov 0.1 sekund
BINÆR_DATA = {
0: "00000:", 1: "00009:", 2: "00090:", 3: "00099:", 4: "00900:", 5: "00909:",
6: "00990:", 7: "00999:", 8: "09000:", 9: "09009:", 10: "09090:", 11: "09099:",
12: "09900:", 13: "09909", 14: "09990:", 15: "09999:", 16: "90000:", 17: "90009:",
18: "90090:", 19: "90099:", 20: "90900:", 21: "90909:", 22: "90990:", 23: "90999:",
24: "99000:", 25: "99009:", 26: "99090:", 27: "99099:", 28: "99900:", 29: "99909:",
30: "99990:", 31: "99999:"
}
def binaer(n):
return BINÆR_DATA[n]+"00000:00000:00000:00000"
def bin_taeller_v1():
for b in range(32):
display.show(Image(binaer(b)))
sleep(100) #sov 0.1 sekund