![]() |
C/C++ Algoritam: Iz Dekadnog u Hex prenoseci vrednosti...
Pozdrav,
evo pravim neku biblioteku za komunikaciju sa mernim uredjajima, i izpizdeo sam, dakle evo shta je problem. Recimo imam neku vrednost koja je u dekadnom zapisu, na primer : Kôd:
123456 Kôd:
0x12 0x34 0x56 ZAPAZANJE: Svi dekadni brojevi su sestocifreni. Svaka pomoc je dobrodoshla. Hvala unapred. |
sprintf("%x", broj)?
|
http://answers.google.com/answers/threadview?id=588461
Kôd:
int main() { |
Uh... boga mi ubih se od razmishljanja i nemam reshanje... jedino mi preostaje da napravim kodnu tabelu iz koje cu da vadim podatke... :(
|
Nije mi sasvim jasno u čemu je problem. Treba da ispisuješ te podatke kao hex na konzolu? Samo udari
Kôd:
cout << hex << moj_broj; |
Ne treba mi stampanje na konzolu, treba mi vrednost u promenljivoj. I to ne da broj konvertujem u hex vec da ga prenesem u hex.
Na primer da: Kôd:
25 dekadno => 0x25 hex 25 dekadno => 0x19 hex Elem, tu treba neko sabiranje. dodam neku vrednost na dekadnu i onda konvertujem u hex. ali nikako da nadjem pravilo, koliko trebam da dodam :( |
sprintf(tvoj_broj_kao_string, "%d", tvoj_broj);
sscanf(tvoj_broj_kao_string, "%x", &tvoj_broj_kao_hex); Verujem da će Dragi Tata da nabode neki one-liner. ;) |
A te promenljive su ti integralni tipovi a ne string? U tom slučaju imaš bar dva rešenja:
1) Lako ali verovatno sporo: upišeš taj broj u string stream, pa ga onda pročitaš iz istog streama sa hex manipulatorom. 2) Malo teže: razbiješ broj na niz cifara, pa onda konstruišeš nov broj tako što ih množiš sa 16 na x (gde x ide od 0 do broja cifara minus jedan) |
Jablane, nas dvojicu mogu da smeste u neki klaster za parallel computing :D
|
Nasao sam reshenje... lako i bez matematike :)
Kôd:
char[100] translate = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x10, Kôd:
int br_hex = translate[br_dec]; |
Vreme je GMT +2. Trenutno vreme je 00:30. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.