Převod hex do dec – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Převod hex do dec – C / C++ – Fórum – Programujte.comPřevod hex do dec – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Spuštěný nový filmový web Filmožrouti.cz — vše o Avengers, Pacific Rim, Thor, Star Wars…
cdx0
Duch
5. 11. 2018   #1
-
0
-

 Zdravím, potřeboval bych vyřešit, jak udělat aby se čísla sčítaly tak něják naopak. Když chci převést AB tak mi to převede BA. Vím že je to kvůli proměnné co, ale jak jinak zajistit Hornerovo schéma, když předem nevím délku hexa cisla. Někdo mi poradil že musím nejdříve do dvojkové a pak do desítkové. To mi ale připadá jako zbytečné.

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    int sum = 0;
    int co = 0;
    int hex = 16;
    char ch;
   while (ch != '\n' ){

            ch = cin.get();
            if (ch > '0' && ch < '9')
            {
                sum += ch - '0';
            }
            if(ch == 'a' || ch == 'A' )
            {
                sum += 10* (pow(hex, co));
            }
             if(ch == 'b' || ch == 'B' )
            {
                sum += 11 * (pow(hex, co));
            }
             if(ch == 'c' || ch == 'C' )
            {
                sum += 12*pow(hex, co);
            }
             if(ch == 'd' || ch == 'D' )
            {
                sum += 13*pow(hex, co);
            }
             if(ch == 'e' || ch == 'E' )
            {
                sum += 14*pow(hex, co);
            }
             if(ch == 'f' || ch == 'F' )
            {
                sum += 15*pow(hex, co) ;
            }
            co++;
    }

    cout << sum << endl;
    return 0;
}
Nahlásit jako SPAM
IP: 2a02:24c0:68:16:f18c:4b81:35b6:7f3e...–
cdx0
Duch
5. 11. 2018   #2
-
0
-

#1 cdx
Asi to nevypadá jako nejlepší řešení ale jsem amatér.    

Nahlásit jako SPAM
IP: 2a02:24c0:68:16:f18c:4b81:35b6:7f3e...–
Řešení
gna
~ Anonymní uživatel
724 příspěvků
5. 11. 2018   #3
-
0
-
Vyřešeno Nejlepší odpověď

Tak můžeš načíst to číslo celé, taky ho nemusíš převádět sám, ale jestli to chceš dělat tímhle stylem, tak spíš nějak takhle:

int value = 0;
int ch, digit;
while ((ch = cin.get()) != '\n' && ch != EOF) {
	if (ch >= '0' && ch <= '9') {
		digit = ch - '0';
	} else if (ch >= 'a' && ch <= 'f') {
		digit = ch - 'a' + 10;
	} else if (ch >= 'A' && ch <= 'F') {
		digit = ch - 'A' + 10;
	} else {
		cout << "je to rozbity\n";
		break;
	}
	value *= 16;
	value += digit;
}
Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 79 hostů

Podobná vlákna

Převod z hex na dec — založil Mats

Z Hexa do DEC převod — založil kejta

Prevod Dec -> Bin — založil Mutagen

Převod elf -> hex — založil yaqwsx

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý