Re: "Překlopení" dat Byte
Napsal: 22 lis 2019, 12:35
Mam pole bx (jako prijatych bytu), je v nem 10 bytu (polozek) z te ctecky
Kdyz se nactou vsechny (proto je to az v if (citac>=10)), tak je preklopim z bytu na pismena odpovidajicich hexa zapisu (protoze to radsi udelam naraz s jednoduchou promennou i, nez bych to delal prubezne a pouzival promennou citac)
plnim pole cx (jako znaku odpovidajicim tomu vyjadreni tech bytu v HEXa - na 1 byte 2 znaky )
bx ma 10 polozek cislovanych od nuly, projdu to for cyklem s promennou i jako indexem.
v kazdem kroku vezmu bx (jako aktualni byte) a rozlozim ho na dva znaky, ktere prijdou na spravne misto v cx (2*i a 2*i+1)
Horni pulka bytu je ten byte posunuty o 4 do prava (bx >>4) a ciste pro sichr oriznuty na dolni 4 bity (& 0xF) - tim mi vyjde cislo v rozsahu 0..15 0000..1111 binarne
ToHex je pole se 16 znaky, odpovidajicimi 10 hexa kodum pro tato cisla - takze z nej vezmu patricny znak ( '0' pro nulu az 'F' pro 15) a jako pismeno ho vlozim na spravne misto do toho cx (tedy na index 2*i)
Na dalsi misto v cx (cili index 2*i+1) dam dolni pulku toho bx (cili vyriznu to znej bitovym soucinem s 0xF=1111) zase prevedenou na znak pomoci pole ToHex
----
Jinymi slovy - projdu nactene byty, kazdy rozdelim na horni a dolni pulku, tu prevedu na pismeno a vlozim do pole cx, tak, aby vyssi rad byl nejdriv a nixsi za nim.
----
no a pak uz mam v cx HEX vyjadreni toho, co jsem prijal, ulozene jako znaky, tak si v tom dalsim cyklu vyberu jen ty zajimave (9..12) a poslu si je na Serial a odradkuju. (nebo si vyber jake chces a delej si s nima co chces)
---
no a samozrejme bych to mohl delat prubezne a po znacich a usetrit par bytu a krasne to zneprehlednit, ale pocitam, ze to chces jako soucast neceho vetsiho, tak jsem to radsi rozepsal, aby bylo videt co a jak delam a snadno se s tim dal pracovalo
Kdyz se nactou vsechny (proto je to az v if (citac>=10)), tak je preklopim z bytu na pismena odpovidajicich hexa zapisu (protoze to radsi udelam naraz s jednoduchou promennou i, nez bych to delal prubezne a pouzival promennou citac)
plnim pole cx (jako znaku odpovidajicim tomu vyjadreni tech bytu v HEXa - na 1 byte 2 znaky )
bx ma 10 polozek cislovanych od nuly, projdu to for cyklem s promennou i jako indexem.
v kazdem kroku vezmu bx (jako aktualni byte) a rozlozim ho na dva znaky, ktere prijdou na spravne misto v cx (2*i a 2*i+1)
Horni pulka bytu je ten byte posunuty o 4 do prava (bx >>4) a ciste pro sichr oriznuty na dolni 4 bity (& 0xF) - tim mi vyjde cislo v rozsahu 0..15 0000..1111 binarne
ToHex je pole se 16 znaky, odpovidajicimi 10 hexa kodum pro tato cisla - takze z nej vezmu patricny znak ( '0' pro nulu az 'F' pro 15) a jako pismeno ho vlozim na spravne misto do toho cx (tedy na index 2*i)
Na dalsi misto v cx (cili index 2*i+1) dam dolni pulku toho bx (cili vyriznu to znej bitovym soucinem s 0xF=1111) zase prevedenou na znak pomoci pole ToHex
----
Jinymi slovy - projdu nactene byty, kazdy rozdelim na horni a dolni pulku, tu prevedu na pismeno a vlozim do pole cx, tak, aby vyssi rad byl nejdriv a nixsi za nim.
----
no a pak uz mam v cx HEX vyjadreni toho, co jsem prijal, ulozene jako znaky, tak si v tom dalsim cyklu vyberu jen ty zajimave (9..12) a poslu si je na Serial a odradkuju. (nebo si vyber jake chces a delej si s nima co chces)
---
no a samozrejme bych to mohl delat prubezne a po znacich a usetrit par bytu a krasne to zneprehlednit, ale pocitam, ze to chces jako soucast neceho vetsiho, tak jsem to radsi rozepsal, aby bylo videt co a jak delam a snadno se s tim dal pracovalo