• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Losowanie i zamiana na system binarny

0 głosów
66 wizyt
pytanie zadane 13 września w C i C++ przez gabi_15 Początkujący (310 p.)

Cześć

Pisalam juz w sprawie tego samego kodu, a mianowicie napisalam program losujacy adres IP i zamieniajacy go na postac binarna no i tu jest malutki problem. Chodzi o to, że nie wiem jak mam zadeklarowac aby program jakby automatycznie dopisywał 0 (juz w systemie binarnym) do liczb w których jest mniej niż 8 cyfr. Jakby to prościej wytlumaczyc, np. Wylosowała się między innymi liczba 3 i po zamianie na postac binarna wyswietlilo się 11, a jak zrobić aby dopisalo 0, aby bylo osiem cyfr? Jak zadeklarowac aby za kazdym razem sprawdzalo i jeśli będzie konieczność dopisywalo 0?

#include <cstdlib>
#include <iostream>
#include <time.h>
#include <windows.h>
#include <string>

using namespace std;


string dec2bin (int dziesietna)
{
    char binarna[255];
    itoa(dziesietna, binarna, 2);

    return (string)binarna;
}

int main()
{
    int liczba, liczba1, liczba2, liczba3;
  cout << "Witaj w losowaniu liczby adresu IP! Za 3 sekundy nastapi zwolnienie blokady.";
    Sleep(3000);
    cout << endl;

    srand(time(NULL));

    liczba = rand()%254+1;
    liczba1 = rand()%254+1;
    liczba2 = rand()%254+1;
    liczba3 = rand()%254+1;

    cout << "Dziesietne: " <<endl;
    Sleep(1500);

    cout<< liczba<<".";
    cout<<liczba1<<".";
    cout<<liczba2<<".";
    cout<<liczba3<<endl;
    Sleep(1000);

    cout<<"Binarna: "<<endl;
    Sleep(1000);
    cout << dec2bin(liczba)<<".";
    cout <<dec2bin(liczba1)<<".";
    cout <<dec2bin(liczba2)<<".";
    cout <<dec2bin(liczba3);


  system("pause>nul");
  return 0;
}
komentarz 13 września przez Criss VIP (115,440 p.)
Uhm. Przecież jest w mojej odpowiedzi https://forum.pasja-informatyki.pl/284478/zamiania-na-system-binarny?show=284486#a284486

Chyba ze chodzi ci o przypadek z własnym algorytmem, to nieważne :P
komentarz 13 września przez gabi_15 Początkujący (310 p.)
Zapytałam, bo ten w odpowiedzi od Ciebie mi nie działał, wyskakiwal mi błąd, emm cały czas piszę o tym kodzie który teraz dodałam :)

2 odpowiedzi

+1 głos
odpowiedź 13 września przez pawi125 Użytkownik (930 p.)
string.lenght()

sprawdzasz dlugosc tablicy stringa i doklejasz odpwiednia liczbe 0.
komentarz 13 września przez gabi_15 Początkujący (310 p.)
Dziękuję :)
+1 głos
odpowiedź 13 września przez Criss VIP (115,440 p.)

Możesz też skorzystać z std::setfill i std::setw tak jak pokazane w przykładzie w linku.

komentarz 13 września przez gabi_15 Początkujący (310 p.)
Dzięki! :)
komentarz 13 września przez Knayder Nałogowiec (26,050 p.)

Przykład z użyciem tych funkcji o których wspomniał Criss oraz z klasą bitset.
 

#include <iostream>
#include <iomanip>
#include <bitset>
#include <cstdlib>
#include <ctime>


int main()
{
	srand(time(NULL));
	std::bitset<8> obj(rand()%100);
	std::cout << std::setfill('0') << std::setw(8) << obj << '\n';
	
	std::cin.get();
	return 0;
}

 

komentarz 14 września przez Criss VIP (115,440 p.)
Knayder - nie potrzebujesz tego. Printując bitset pokażesz tyle bitów ile dałeś w paramterze szablonu bitset.

Podobne pytania

0 głosów
2 odpowiedzi 110 wizyt
pytanie zadane 10 września w C i C++ przez gabi_15 Początkujący (310 p.)
0 głosów
2 odpowiedzi 299 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Steefler Nowicjusz (180 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,576 zapytań

76,451 odpowiedzi

149,281 komentarzy

18,047 pasjonatów

Przeglądających: 324
Pasjonatów: 25 Gości: 299

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...