C/Przykłady z komentarzem: Różnice pomiędzy wersjami

Usunięte 200 bajtów ,  16 lat temu
Wersja polegająca na tym że rozmiar short int to zawsze 16 bitów była niedopuszczalna
(Wersja polegająca na tym że rozmiar short int to zawsze 16 bitów była niedopuszczalna)
 
=== Zamiana liczb dziesiętnych na liczby w systemie dwójkowym ===
Zajmijmy się teraz innym zagadnieniem. Wiemy, że komputer zapisuje wszystkie liczby w postaci binarnej (czyli za pomocą jedynek i zer). Spróbujmy zatem zamienić liczbę, zapisaną w "naszym" dziesiątkowym systemie na zapis binarny. '''Uwaga!:''' Program będzie działa poprawniejedynie dla liczb w zakresie od 0 do 65535maksymalnej wartości którą może przyjąć typ (2<supcode>16unsigned short int</supcode> - 1), jednak radzę popróbować zw innymitwoim liczbamikompilatorze.
 
<pre>
#include <stdio.h>
void dectobin (unsigned short a)
{
int licznik; = 15;
 
for (;licznik>=0;licznik--) {
/* 8 to ilość bitów w bajcie */
if ((a>>licznik)&1) printf ("1");
licznik else= printf8 * sizeof("0"a);
while(--licznik >= 0)
{
if ((a >> licznik) &1) printf ("1");
printf ("1");
else
printf ("0");
}
}
int main ()
{
unsigned short a; /* 16-bitowa zmienna */
 
printf ("Podaj liczbę: ");
dectobin(a);
printf ("\n");
 
return 0;
}
 
</pre>
 
Funkcję <code>dectobin()</code> można zmodyfikować tak, aby działała na zmiennych całkowitych o dowolnej długości poprzez zmianę typu danych <code>unsigned short</code> na inny oraz zamianę linii
 
int licznik = 15;
 
na
 
int licznik = 8 * sizeof(a) - 1;
 
 
 
15

edycji