• 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

Cloud VPS
0 głosów
1,005 wizyt
pytanie zadane 13 września 2017 w C i C++ przez gabi_15 Początkujący (370 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 2017 przez criss Mędrzec (172,570 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 2017 przez gabi_15 Początkujący (370 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 2017 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
string.lenght()

sprawdzasz dlugosc tablicy stringa i doklejasz odpwiednia liczbe 0.
komentarz 13 września 2017 przez gabi_15 Początkujący (370 p.)
Dziękuję :)
+1 głos
odpowiedź 13 września 2017 przez criss Mędrzec (172,570 p.)

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

komentarz 13 września 2017 przez gabi_15 Początkujący (370 p.)
Dzięki! :)
komentarz 13 września 2017 przez Knayder Nałogowiec (37,640 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 2017 przez criss Mędrzec (172,570 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 955 wizyt
pytanie zadane 10 września 2017 w C i C++ przez gabi_15 Początkujący (370 p.)
0 głosów
1 odpowiedź 664 wizyt
pytanie zadane 12 marca 2018 w Rozwój zawodowy, nauka, praca przez WireNess Stary wyjadacz (11,240 p.)
0 głosów
2 odpowiedzi 939 wizyt
pytanie zadane 24 października 2019 w Matematyka, fizyka, logika przez RocketPl Nowicjusz (120 p.)

93,453 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,830 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...