# primer koji za zadati niz karaktera odredjuje bajtove pomocu kojih se cuvaju karakteri # kada se koristi UTF-8 za kodiranje karakter1 = 'A' karakter2 = 'B' karakter3 = '@' karakter4 = '\u2602' karakter5 = '\u2706' #pravljenje Unicode niske karakteri = karakter1 + karakter2 + karakter3 + karakter4 + karakter5 print('niska karaktera', karakteri) #AB@☂✆ #odredjivanje bajtova nakon kodiranja sa UTF-8 bajtovi=bytes(karakteri, 'UTF-8') print() print('bajtovi karaktera', bajtovi) # b'AB@\xe2\x98\x82\xe2\x9c\x86' # reprezentacija vrednosti bajtova pomocu dekadnih celih brojeva nakon primene UTF-8 algoritma # prikazuje se lista dekadnih brojeva print('\n') print('Prikaz vrednosti bajtova pomocu dekadnih vrednosti') print([b for b in bajtovi]) #[65, 66, 64, 226, 152, 130, 226, 156, 134] # prikaz vrednosti bajtova pomocu binarnog sistema print('\n') print('Prikaz bajtova') print([f"{x:b}".zfill(8) for x in bajtovi]) #AB@☂✆ # A B @ | kisobran (3 bajta) | slusalica (3 bajta) # '01000001', '01000010', '01000000', '11100010', '10011000', '10000010', '11100010', '10011100', '10000110' # kratko objasnjenje za [f"{x:b}".zfill(8) for x in bajtovi] # jednostavniji zapis: [izraz for x in bajtovi] # for x in bajtovi: pristupa se svakom bajtu pojedinacno (oznacen sa x) u bajtovi # i izraz se primenjuje na svaki bajt (tj. x) # u nasem primeru izraz je f"{x:b}".zfill(8) gde je x bajt koji se obradjuje u nekom trenutku # f"{x:b}" prikazuje vrednost bajta u binarnom sistemu # .zfill(8) dodaje vodece nule tako da se binarni broj prikazuje sa 8 cifara