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

zamiana na kod binarny

Object Storage Arubacloud
0 głosów
823 wizyt
pytanie zadane 22 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)

Moje zdanie brzmi: ,,Napisz program, który przekształca podaną przez użytkownika liczbę całkowitą na tablicę znaków reprezentującą wartość liczby w systemie binarnym i wyświetla zawartość tablicy znaków na konsoli.

 Wskazówki: 1. załóż, że liczba jest dodatnia, a jej maksymalna wartość to 255 i na tej podstawie dobierz rozmiar tablicy oraz typ wczytywanej zmiennej 

2. pamiętaj, żeby zastosować tablicę znaków a nie tablicę liczb

 3. zastosuj pętlę oraz operacje przesunięcia bitowego w celu pozyskania kolejnych cyfr w systemie binarnym (0 lub 1)  

4. pamiętaj, aby w ostatnim elemencie tablicy znaków umieścić znak specjalny końca ‘\0’."

Program jest napisany poprawnie i działą prawidłowo. Jednak powinienem go przemodelować by działał tak samo ale kod wyglądał inaczej (inny sposób na podobnych funckjach i komendach). Prosiłbym właśnie o pomoc  w zamianie kodu na inny

#include <iostream>

using namespace std;

int main()
{

   unsigned int liczba;
   int i=31;
   int numer=0;

   cout << "Podaj liczbe: ";
   cin >> liczba;

   char tab[9];
  
   bool zera=false;


   while (i--)
   {
      if (liczba >> i & 1& !zera)
      zera = true;
      if (zera)
      {
       if (((liczba >> i) & 1) == 1)
        {
             tab[numer]='1';
        }
       else
      {
           tab[numer]='0';
      }

          numer++;
      }
   }

       cout<<"Liczba w systemie binarnym wynosi: "<<endl;
       tab[numer] = '\0';

       cout<<tab<<endl;

       system("Pause");
       return 0;
}

 

komentarz 22 kwietnia 2020 przez tangarr Mędrzec (154,780 p.)
Przerabiamy pracę domową kolegi?
komentarz 22 kwietnia 2020 przez Atman Użytkownik (810 p.)
Nie. Nasza Pani nie rozumie że jeśli korzystamy z tych samych materiałów i komunikujemy się w trakcie pracy to te programy będą siłą rzeczy podobne. Dla niej każdy ma być oryginalny. Dlatego proszę o pomoc. Bo ja potrafię to zrobić na jeden sposób a wymaga się ode mnie innego metodą siłową
komentarz 23 kwietnia 2020 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Gorąco polecam: https://dsp.krzaq.cc/post/tag/lawful-evil/

Jak skorzystasz z tych porad to nie ma bata, nikt nie będzie miał podobnego kodu do Ciebie. wink

1 odpowiedź

0 głosów
odpowiedź 22 kwietnia 2020 przez tangarr Mędrzec (154,780 p.)

Załóż, że liczba jest dodatnia a jej maksymalna wartość to 255 - typ unsigned char
Wyrzuć zmienne: i, zera.
Utwórz zmienną unsigned char maska = 1 << 7 lub 0x80 lub 128
Pętlę wykonujesz dopóki zmienna maska jest różna od zera.
1. Porównaj liczbę z maską (jeżeli zero i zmienna numer jest równa 0 to przesuń maskę o jeden w prawo i skocz do następnego wykonania pętli)
2. Jeżeli uzyskana liczba to zero to ustaw tab[numer] na '0' w przeciwnym razie na '1'
3. Zwiększ zmienną numer o jeden i przesuń maskę o jeden w prawo
Po zakończeniu pętli:
Jeżeli zmienna numer jest równa zero to ustaw tab[0] na '0' i zwiększ zmienną numer o jeden.
Ustaw tab[numer] na znak końca tekstu ( zero, NULL, '\0')

Podobne pytania

0 głosów
2 odpowiedzi 115 wizyt
+1 głos
2 odpowiedzi 652 wizyt
pytanie zadane 2 sierpnia 2020 w C i C++ przez RufinB Obywatel (1,830 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...