• 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++

VPS Starter Arubacloud
0 głosów
1,194 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 337 wizyt
pytanie zadane 29 sierpnia 2017 w Offtop przez Badzonor Obywatel (1,410 p.)
0 głosów
2 odpowiedzi 1,075 wizyt
0 głosów
2 odpowiedzi 894 wizyt
pytanie zadane 30 października 2017 w Egzaminy zawodowe przez Zawisza czarny Obywatel (1,700 p.)

92,973 zapytań

141,938 odpowiedzi

321,180 komentarzy

62,301 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...