Pokaż wyniki 1 do 9 z 9

Temat: Problem z liczbami binarnymi

  1. #1
    Zarejestrowany
    Jan 2007
    Postów
    17

    Domyślnie Problem z liczbami binarnymi

    Witam to jeszcze raz ja. Mam problem odnośnie liczb binarnych. Otóż zamieniam liczby dziesiętne na liczby binarne i każda z tych liczb binarnych ma swoja długość, a ja chciałbym zrobić coś takiego żeby każda ta liczba miała 8 cyfr. Czyli jeśli mam liczbę binarna 101 to chciałbym żeby to wyglądało 00000101. Po prostu jeśli ta liczba jest krótsza niż 8 cyfr to zapełniania długości dopisywać na do początku cyfry zera aż do 8 cyfr. Wicie może jak to można by było zrobić, bo ja jakoś nie moge na nic wpaść. Prosiłbym o pomoc i z góry dzieki

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    printf ("%08d", 101);

    jesli chcesz wynik miec w zmiennej to sprintf zamiast printf

  3. #3
    Zarejestrowany
    Jan 2007
    Postów
    17

    Domyślnie

    Chyba źle zapisałem bo wyświetla prawie same zera lub czasami jedna 1 na początku:

    cout << printf("%08d", wynik);

    gdzie wynik to różna liczba binarna do 8cyfr
    Nie, dobrze zapisałem tylko ta funkcja stawia przed każdą cyfra liczby binarnej osiem 0 i ósemkę, a mi chodziło o to żeby pierw albo sprawdzał program czy ta liczba ma 8 cyfr a jak nie ma to dopisywał jej na początku zera dla uzupełnienia
    Ostatnio edytowane przez Szyba : 02-13-2007 - 21:09

  4. #4
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    o czym ty mowisz?!

    printf("%08d", 101); na wyjsciu daje 00000101
    printf("%08d", 110001); na wyjsciu daje 00110001

    O co innego Ci chodzi? Jak nie wiesz co oznacza %08d to zobacz do listy formatow obslugiwanych przez printf().

    W powyzszym przykladzie jasno jest podane - ciag 8 cyfr uzupelniony zerami z przodu (jesli dlugosc bedzie mniejsza niz 8 znakow). Pamietaj jednak ze w wyniku dostajesz liczbe a nie stringa!

  5. #5
    Zarejestrowany
    Jan 2007
    Postów
    17

    Domyślnie

    No tak, ale jeśli zamiast tej liczby przykładowo 101 podstawie zmienna typu int to źle działa. A może jest tez dla zmiennych cos takiego

  6. #6
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    A moze tak zajrzysz do manuala co?

    %d a signed integer, in decimal
    %u an unsigned integer, in decimal
    %o an unsigned integer, in octal
    %x an unsigned integer, in hexadecimal

  7. #7
    Zarejestrowany
    Jan 2007
    Postów
    17

    Domyślnie

    Jakbyś podał stronkę to fajnie by było i byłbym wdzięczny do tego manuala i jakbyś mógł luknąć co to jest źle w tym kodzie to było by super

    ...

    int wynik;

    ...

    wynik = tab[i];
    cout << printf("%08d", wynik);

    ...
    Bo mi pokazuje tak:
    Jeżeli liczba wynosi 101 to pokazuje 00000018
    a jak jest 100 to pokazuje 000000008
    Chyba coś jest źle. żadna ze zmian nie pomaga

  8. #8
    Zarejestrowany
    Feb 2007
    Skąd
    Kielce
    Postów
    131

    Domyślnie

    chcesz linka do manuala? A poszukac to nie laska?

    Masz linka C++ Manual
    "W życiu wszystko ma jakiś sens, tylko trzeba go odnaleźć. No i często ma on odmienne znaczenie dla różnych osób."

  9. #9
    Zarejestrowany
    Jan 2007
    Postów
    17

    Domyślnie

    A w Polskiej wersji tego manuala można znaleźć

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj