Prevod z dvojkovej sustavy do desiatkovej

C,C++,C#

Moderátori: psichac, Moderátori

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 20:41

ahojte chalani mam otázku na telo prijmam po RS 232 4*8 bytov na obrázku je síce len 3*8 ale to je detail teraz posielam už 4 :D
ide o to že to je hodnota frekvencie a ja ju mam zobraziť v jazyku C ako jedno číslo, číslo to je cele a bez znamienka číže unsigned int
, ak mam pole veľkosti 3 sa mi to uloži ale zistil som že v C mam síce prístup k jednotlivým bajtom ale nie k jednotlivým bitom :( ako viem si dane uložené číslo ktoré bude v desiatkovej sústave previesť na binárne jednotlivé byti uložiť do ďalšieho pola od 0 po 32 a podľa toho sčítavať v cykle for len 2^n a potom dostanem to číslo ale príde mi to ako blbe riešenie nepoznáte alebo neviete poradiť niečo elegantnejšie :) za vaše odpovede vopred ďakujem
Prílohy
11198489_957456844289054_1799247067_n.jpg
0
Naposledy upravil/-a Dumitru v 30 Apr 2015, 21:21, upravené celkom 1 krát.

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa peterple » 30 Apr 2015, 21:11

Z tvojho popisu ti nerozumiem o čo ti ide. Ak potrebuješ preniesť 4 byte tak ich prenes a neprevádzaj na 32 cislic 1 a 0. To je holý nezmysel.

Potom ešte tvrdíš že v C nemáš prístup k jednotlivým bitom. To nie je pravda. Pravda síce je že tam datový typ bit nie je, ale ak potrebuješ vedieť hodnotu nejakého bitu tak sa to dá zistiť maskovaním - operácia bitového súčinu a vhodného číselka.

A zvyšok som nepochopil. Hovoríš nejakou čudnou rečou.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 21:36

takto som to popisal dufam ze to bude jasnejsie proste potrebujem v C naspet zlucit to cislo a ulozit ho do premennej v desiatkovej sustave a dalej s nim pracovat :) na konci som sa sekol pole 2 tam ma byt :)
Prílohy
11186410_957485660952839_1690735435_n.jpg
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa peterple » 30 Apr 2015, 21:47

aby som pravdu povedal tak, aby som si s vykryvenou hlavou prečítal to isté napísané na papieri, to si mi veľmi nepomohol.
Aspoň ten obrázok si mohol slušne otočiť.
Zvyčajne mi i a y je srdečne jedno ale keď ide o technický termín tak to jedno nieje lebo bit a byte je pre mňa veľký rozdiel.
Potom mi prosím ťa povedz čo je to za akademický merač f ktorý posiela takto naformátovanú nameranú frekvenciu?

Takže ak dobre chápem z 32 znakového ASCII retazca cislic '1' a '0' potrebuješ spraviť unsigned int.
Nuž naštuduj si prevod z dvojkovej do desiatkovej sústavy, napíš nejaký algoritmus a daj sem, ak ti to nebude fungovať. Tak ti možno niekto poradí.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 22:03

Na základe tohto :
Dumitru napísal:na obrázku je síce len 3*8 ale to je detail teraz posielam už 4
dedukujem, že merač frekvencie si programuješ sám.

Vieš spraviť screenshot z Realterm, kde máš viditeľné nastavenie v záložke Display? Aby bolo jasné, čo vlastne prijímaš.
Prílohy
nastavenie
nastavenie
0

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 22:08

prepač niesom slovak preto sa mi tie i y utekaju ale budem sa snazit aspon pri technickych terminov nepliest :),po RS232 ani nemozem posielat viac ako 8 bitov viď obrazok preto si to musim rozdelit na 3*8 a posielat osobitne kazdych 8 keby sa dalo 32 na raz tak parada nic by ma netrapilo ale neda , funguje ten merac asi takto po dobu jednej sekundy ktora je priamo z GPS signalu mam pocitadlo kltore mi pocita periody cize pri kazdej nabeznej hrane signalu pripocita +1bit v podste kolko impulzov napocita taka je frekvencia cize presnost merania je +-1Hz takze dostanem cislo buď 9999999 alebo 10000001 samozrejme ak meranie prebieha len 1 sekundu :) ak 10 tak +-0.1 ak 20 tak +-0,01 :) asi takto v strucnosti :)

-- Spojený príspevok 30 Apr 2015, 22:13 --

takto je nastavenie
Prílohy
rs232_01.jpg
raz.jpg
dva.png
0

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa xmilos » 30 Apr 2015, 22:14

ukaz zdrojak co vlastne robis. Kludne aj do SS.
0

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 22:20

Ešte raz. Na to aby Ti vedel niekto pomôcť, potrebuje vedieť či je to takto:
peterple napísal:Takže ak dobre chápem z 32 znakového ASCII retazca cislic '1' a '0' potrebuješ spraviť unsigned int.
Alebo prijímaš cez RS 232 0x80 alebo 0x31 0x30 0x30 0x30 0x30 0x30 0x30 0x30
Preto som spomínal to nastavenie RealTerm

.... predbehol si ma

Ja by som to spravil takto:

prijmeš prvy byte, posunies o 16 bitov do ľava
prijmeš druhy byte, posunies o 8 bitov do ľava a pripocitas k prvemu
prijmeš treti byte a pripocitas k predchadzajucemu vysledku. a mas to.
0

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 22:27

prijmam to ako 0x8 cize prve sa mi posle 0-7 potom sa mi posle 8-15 a potom 16-23 a takto ak pomoze je aj usporiadanie MSB a LSB
Prílohy
poradie.jpg
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa peterple » 30 Apr 2015, 22:30

no už je to jasné. Súhlasím s lh, urobil by som to presne tak isto, iba by som miesto spočítania použil bitový or.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 22:32

xmilos napísal:ukaz zdrojak co vlastne robis. Kludne aj do SS.
v pohode ale zdrojak ja v jazyku HDL ak to pomoze mozem poslat ale neviem ci :) uz som sa raz tu pital na HDL a nikto nic :)
0

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 22:35

Neodpustím si otázku... To fakt potrebuješ merať frekvenciu v rádoch desiatok MHz s presnosťou na 1Hz?

-- Spojený príspevok 30 Apr 2015, 22:49 --
Dumitru napísal:prijmam to ako 0x8 cize prve sa mi posle 0-7 potom sa mi posle 8-15 a potom 16-23 a takto ak pomoze je aj usporiadanie MSB a LSB
Nepochopili sme sa. 0x80 som myslel ako šesťnástkovú reprezentáciu čísla 128, a 0x31 0x30 0x30 0x30 0x30 0x30 0x30 0x30 ako osem znakov ASCII v šestnástkovom zápise. 0x31 ako "1" a 0x30 ako "0" takže "1""0""0""0""0""0""0""0".

Ale z toho nastavenia je jasné, že je to tá prvá možnosť.

Ak byty prijímaš v poradí ako si písal, tak ten postup spájania treba obrátiť. V prvom kroku nerob nič, len načítaj, ďalší byte posuň o 8 bitov, spočítaj, a ďalší o 16 a spočítaj. A máš to.

A teraz idem premýšľať o operácii bitový OR :D

Nie som programátor, tak by som sa pri tejto príležitosti tiež rád priučil. Peterple, prečo je vlastne lepšie použiť bitový or ako to jednoducho sčítať? Ja sa spolieham na kompilátor, že to za mňa vyrieši :D
0
Naposledy upravil/-a lh v 30 Apr 2015, 23:20, upravené celkom 1 krát.

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 23:00

JOP potrebujem :) a dokonca ja to meram nie +-1Hz ale dvadsat sekund cize +-0,01Hz :D ale to pretoze je to referencny zdroj frekvencie tak by to malo byt co najpresnejsie :) idem aj ja rozmislat ako to v C sa da posuvat viem co je bitovi posun viem ako to funguje len este mi nie je jasne ako to spravit v C :)
0
Naposledy upravil/-a Dumitru v 30 Apr 2015, 23:23, upravené celkom 1 krát.

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 23:15

Napr. http://www.builder.cz/rubriky/c/c--/uci ... e-155778cz to máš popísané citujem:
"bitový posun doleva - <<
Tímto operátorem jednoduše provedeme posun všech bitů levého operandu o určitý počet míst, který udává hodnota pravého operandu. Při posunu se bity nejvíce nalevo ztrácejí* a zleva jsou uvolněná místa doplněna nulami. Následující příkaz vrátí o dvě místa bitově posunutou hodnotu čísla 45.
45 << 2;
před posunem (hodnota 45) 00101101
po posunu (hodnota 180, výsledek celého výrazu) 10110100"



*pozor preto na dátový typ výslednej premennej!
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa peterple » 30 Apr 2015, 23:24

v tomto prípade by to malo biť to isté, ale keď by si robil 1 + 1 a 1 || 1 tak je to rozdiel
rotácia vľavo
co << koľko
rotácia vpravo
co >> kolko

S to presnosťou si to viem predstaviť že to potrebuješ merať dlho. Keď som pred 30tymi rokmi nastavoval hodiny s jednočipom, tiež som meral dlho, už si nepamätám presne koľko to bolo ale bolo to viac než štyri minúty. Vtedy nebol k dispozícii GPS signál a tak som si bral ako referenciu riadkový synchronizačný signál z TV ktorý bol vtedy naviazaný na nejaký presný etalón.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 23:29

ano ano ano to som uz pochopil princip cize potrebujem napriklad premennu long int ja neviem b; a ta je 32 bitova a donej potupne posuvat tie prijate data :) ci zle tomu rozumiem ?
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa peterple » 30 Apr 2015, 23:33

dobre tomu rozumieš. Len na drobnosť. Na PC je int 32bitov a long int 64bitov (a ani to nemusí byť vždy pravda)
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 23:34

Dobre :thumbup:
0

Dumitru
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Nov 2011, 22:19
Vek: 32

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa Dumitru » 30 Apr 2015, 23:35

dakujem za rubriku myslim si ze je mi to uz jasne a este raz dakujem moc krat za pomoc ;) :agree:
0

Používateľov profilový obrázok
lh
Pokročilý člen
Pokročilý člen
Príspevky: 715
Dátum registrácie: 23 Mar 2013, 14:02
Bydlisko: z južnej strany Poľany
Vek: 45

Re: Prevod z dvojkovej sustavy do desiatkovej

Príspevok od používateľa lh » 30 Apr 2015, 23:46

peterple napísal:v tomto prípade by to malo biť to isté, ale keď by si robil 1 + 1 a 1 || 1 tak je to rozdiel
Aha :D akosi som nad týmto nerozmýšľal, keďže pripočítavam k rádom, kde mi po posune zostali nuly. Nuž, ako vraví klasik... učiť sa učiť sa a aj tak nevedieť :rolleyes:
0

Napísať odpoveď