IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Převod s desítkové na binární soustavu

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Vítězslav Škrabal:22.2.2017 12:40

Zdravím
Mám takový příklad jak převést byte na bin

void byte_to_bin(unsigned char a, char *str)
{
   char b;

   for (b = 0b10000000; b > 0; b >>= 1) {
      *str++ = a & b ? '1' : '0';
   }
   str = '\0';
}

void main(void)
{

   unsigned char a;
   char str[9];

   a = 253;
   byte_to_bin(a, str);
   printf(str);
}
toto převádí jen byte - 8 bitů a já bych to  potřeboval upravit aby to převedlo 16 bitů,přiznávám se že v Céčku dost plavu díky předem za pomoc
 
Odpovědět
22.2.2017 12:40
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Vítězslav Škrabal
Martin Dráb:24.2.2017 20:25
void word_to_bin(unsigned short a, char *str)
{
   for (unsigned short b = 0b1000000000000000; b > 0; b >>= 1) {
      *str++ = a & b ? '1' : '0';
   }
   *str = '\0';
}

A jelikož 16bitové číslo má 16 bitů, tak musí mít proměnná str velikost 17 znaků, ne 9.

Editováno 24.2.2017 20:27
Nahoru Odpovědět
24.2.2017 20:25
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.