Stránka 2 z 2

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 12:35
od gilhad
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

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 12:46
od gilhad
Jinak kiRRow ma samozrejme taky pravdu, jde jen o styl - ja tam radsi mam to oriznuti, ktere zaruci, ze to z toho pole nevyleze a prijde mi to vic didakticke (ackoli to ted vyjde, tak kdyby se ten trik pouzil na vetsi promenne (jako int, long, ...), tak by i po tom posunu tam mohl byt ten zbytek jeste velky

A misto, abych prevadel ty pulbyty nejakym vypoctem, tak jsem je pouzil jako index v poli ToHex, kde mam uskladnena pismena, ktera jim odpovidaji

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 14:09
od vodny86
Už tomu plně rozumím, moc děkuji.

Jen nerozumím tomu, že to někdo vymyslel, že taková konstrukce někoho napadne a to je určitě ještě dost jednoduché... Prostě posunutí bitů + aplikace AND s tím, že mi to dá index na připravené pole, to je prostě :twisted: :twisted:

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 14:20
od kiRRow
To jsou totiž tak základní operace, že se k nim dostaneš až později, protože na všechno jsou dneska knihovny, které tohle řeší za tebe.

Já třeba řešil odchylku měření, uměl jsem si ji na začátku zjistit a nakonci ji k výsledku přičíst nebo odečíst, podle toho jestli ta odchylka byla kladná nebo záporná. Sestrojil jsem prasáckej progam, který nejprve zjišťoval jestli je to větší menší než nula ... pak z toho dudlal absolutní hodnotu čísla a tu pak přičítal a nebo odečítal podle toho jestli bla větší nebo menší než nula ..... a druhej den ráno jsem to smazal, protože v podřimování večer mi cvaklo v hlavě, že to vlastně stačí vynásobit odchylku -1 a přičíst k výsledku

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 14:39
od vodny86
To budeš mít určitě pravdu. Ty knihovny jsou absolutní základ a dávají tak do ruky dost silný nástroj pro jednoduché projekty, nicméně když tam máš pak něco poupravit, tak jsi v háji a pak vlastně zjišťuješ, co se v těch knihovnách děje a tam ji v lese protože se tam objeví něco jako bitový posun atp.

Nicméně to nemění nic na tom, že tě ta konstrukce musí trknout.

Taky by to chtělo nějaký jiný prostředí než to IDE co je klasika u Arduina. Ocenil bych možnost krokování v průběhu programu + zobrazení co v které promněné je zrovna uložené a co se děje. Plus nějaké našeptávání by bodlo.

Re: "Překlopení" dat Byte

Napsal: 22 lis 2019, 15:54
od kiRRow
knihovny jsou fajn ... nevyděsí to nováčka, protože před ním skrývají fakt, že programuje :D