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