Mam przedziwny problem z jedną zmienną..
Ta sama liczba zapisana w różny sposób ma inne wartości binarne.
Mianowicie:
__________
wyniki powinny być identyczne, czyli 01110100 prawda? ale wcale tak nie jest! owszem o ile s=0b01110100 to wynik jest prawidłowy jeśli jednak napisze s=74 (a 74 to binarnie 01110100) to otrzymuje 01001010, ani to przesunięcie ani nic, nie wiem skąd to się bierze...
czy ma ktoś pojęcie dlaczego tak jest?
zamiana funkcji miejscami nic oczywiście nie daje.
sama funkcja rozklad wygląda tak: (ale nie jest to istotne)
Ta sama liczba zapisana w różny sposób ma inne wartości binarne.
Mianowicie:
unsigned int s=0b01110100; // 74
rozklad(s); // wyświetla binarnie s | daje wynik prawidłowy tj. 01110100
s=74;
rozklad2(s); // to samo co rozklad ale w innym miejscu wyświetlacza, daje wynik 01001010
__________
wyniki powinny być identyczne, czyli 01110100 prawda? ale wcale tak nie jest! owszem o ile s=0b01110100 to wynik jest prawidłowy jeśli jednak napisze s=74 (a 74 to binarnie 01110100) to otrzymuje 01001010, ani to przesunięcie ani nic, nie wiem skąd to się bierze...
czy ma ktoś pojęcie dlaczego tak jest?
zamiana funkcji miejscami nic oczywiście nie daje.
sama funkcja rozklad wygląda tak: (ale nie jest to istotne)
void rozklad(int y)
{
for(int i=0 ; i<8; i++)
{
slowo[8-i]= (0x30 | ((y >> i) & 0x01));
};
}