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

Zamiana z systemu 2 na 16 c++

Object Storage Arubacloud
0 głosów
1,006 wizyt
pytanie zadane 18 listopada 2018 w C i C++ przez adamus Użytkownik (860 p.)

Witam jak moge napisac program z zamiany liczby w systemie 2 na 16 ? Do tej pory udalo mi sie tylko zrobic z 16 na 2 i nie wiem jak zabrac sie za odwrotna sytuacje. Tutaj kod z 16 na 2.

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
	int i,j,pom;
	string x, zbior="0123456789ABCDEF";
	do
	{
		cout<< "Podaj liczbe w systemie 16 ";
		cin>> x;
		for(i=0;i<x.size();i++)
		{
			for(j=0;j<zbior.size();j++)
			{
				if(x[i]==zbior[j])
					{
						pom++;
						break;
					}
			}
		}
	}while(x[i]==zbior[j]);
	for(i=0;i<x.size();i++)
	{
		switch(x[i])
		{
		case '0': 
			cout<< "0000 "; 
			break; 
		case '1': 
			cout<< "0001 "; 
			break; 
		case '2': 
			cout<< "0010 "; 
			break; 
		case '3': 
			cout<< "0011 "; 
			break;
		case '4': 
			cout<< "0100 "; 
			break;
		case '5': 
			cout<< "0101 "; 
			break;
		case '6': 
			cout<< "0110 "; 
			break; 
		case '7': 
			cout<< "0111 "; 
			break; 
		case '8': 
			cout<< "1000 "; 
			break; 
		case '9': 
			cout<< "1001 "; 
			break; 
		case 'A': 
			cout<< "1010 "; 
			break; 
		case 'B': 
			cout<< "1011 "; 
			break; 
		case 'C': 
			cout<< "1110 "; 
			break; 
		case 'D': 
			cout<< "1101 "; 
			break; 
		case 'E': 
			cout<< "1110"; 
			break; 
		case 'F': 
			cout<< "1111 "; 
			break; 
		}
	}
	getch();
	return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
wybrane 19 listopada 2018 przez adamus
 
Najlepsza
Zamianę na szesnastkowy robisz podobnie. Czytaj kolejne 4 bity i w switchu zamieniaj na wersję szesnastkową. W for zamiast i++ daj i+=4
komentarz 18 listopada 2018 przez adamus Użytkownik (860 p.)
tak sam towrzyłem
komentarz 18 listopada 2018 przez adamus Użytkownik (860 p.)
to mozesz opisac jak sie od poczatku za to zabrac bo jakos tego nie widze..
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
1 stwórz tablicę liczb dwójkowych

2 w petli for sprawdz ktora liczba dwójkowa jest równa wartości x.substr(i,4), wtedy zwróć index tego elementu z tablicy

3 zwroc wartosc z tablicy zbior o tym indeksie

4 doklej to do stringa wynikowego
komentarz 18 listopada 2018 przez adamus Użytkownik (860 p.)
okej a casemi bym tego nie zrobil?
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
Nie, bo w switchu nie możesz sprawdzać stringa, co jest strasznie głupie :P
0 głosów
odpowiedź 18 listopada 2018 przez Maciej Złotorowicz Gaduła (4,230 p.)
Jeżeli chcesz to robić tą metodą to zamianę w drugą stronę można wykonać praktycznie tak samo - wystarczy rozpoznawać po 4 bity z liczby i przypisywać im kolejne cyfry w hexie:
1111 1000
   F      8
Wyizolować 4 znaki ze stringa można tym: http://www.cplusplus.com/reference/string/string/erase/
komentarz 18 listopada 2018 przez adamus Użytkownik (860 p.)
To od czego tak dokładniej zacząc ?
komentarz 19 listopada 2018 przez Maciej Złotorowicz Gaduła (4,230 p.)
możesz np pobierać do bufora 1 4 znaki ze stringa (następnie przy użyciu earse wytnij 4 pierwsze znaki) rozpoznaj swich'em jaka kombinacja jest w buforze i wyświetl odpowiadający jej znak.

Podobne pytania

0 głosów
3 odpowiedzi 301 wizyt
pytanie zadane 29 sierpnia 2017 w Offtop przez Badzonor Obywatel (1,410 p.)
0 głosów
2 odpowiedzi 830 wizyt
0 głosów
2 odpowiedzi 666 wizyt
pytanie zadane 30 października 2017 w Egzaminy zawodowe przez Zawisza czarny Obywatel (1,700 p.)

92,563 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 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!

...