Výpis "unsigned long long int" po bitech – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Výpis "unsigned long long int" po bitech – C / C++ – Fórum – Programujte.comVýpis "unsigned long long int" po bitech – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Kuba
~ Anonymní uživatel
58 příspěvků
15. 3. 2012   #1
-
0
-

Zdravím,

potřeboval bych si číslo v proměnné typu unsigned long long int (64bitu) zobrazit bit po bitu.Používám pro to následující kousek kódu, v mainu je jenom volání funkce VypisB.  
 

void VypisB (unsigned long long int cislo){

    int bit;
    int pom;
    int i;
    
    pom = sizeof(unsigned long long int)*8-1;
   
    for (i=pom;i>=0;i--) {
        bit=(cislo & (1 << i));
        if (bit) cout << 1;
        else cout << 0;  
    }

}


Problém je, že výsledná hodnota se zobrazuje jako by měl typ pouze 32bitů. 

Příklad:

cislo=1

program vypíše: 0000000000000000000000000000000100000000000000000000000000000001
Nevíte někdo v čem by mohl být problém? Budu vděčný za každou radu!

Nahlásit jako SPAM
IP: 80.188.34.–
Reklama
Reklama
vitamin+8
Grafoman
15. 3. 2012   #2
-
0
-

Ved tych cisel je tam 64.

Inak mozes pouzit:

bit=(cislo & (1ull << i));  //1ULL
Nahlásit jako SPAM
IP: 178.143.60.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Kuba
~ Anonymní uživatel
58 příspěvků
15. 3. 2012   #3
-
0
-

#2 vitamin
Mátla mě tam ta jednička v půlce navíc, použití 1ull to vyřešilo! Díky moc!  

Nahlásit jako SPAM
IP: 80.188.34.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 107 hostů

Podobná vlákna

Vypis int ve Win32 API — založil david v.

Zadaní int do pole int — založil Redby

Podmínka na int — založil Mutagen

Moderátoři diskuze

 

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