Cześć, wiem o istnieniu funkcji stoi, dzięki której możemy konwertować z dowolnego systemu liczbowego na dziesiętny. Czy zna ktoś funkcję, która pozwoliłaby na szybką konwersję na dowolny system (albo chociaż na binarny) z dziesiętnego?
Od razu powiem: wiem, że mogę napisać swoją funkcję, jednak chodzi mi o oszczędzanie czasu na egzaminie.
z 10 na 2 uzyj bitset
na dowowolny z dowolnego to gdzies na forum lezy (gotowa napisana funkcja), uzyj opcji szukaj. Zrobil ja _13th_dragon
Niestety interesują mnie tylko funkcje z bibliotek standardowych, bo na egzaminie nie mogę niczego wklejać.
to masz trzy opcje
- albo napisac wlasna funkcje z dowolnego na dowolna
- albo zapamietac jak to sie pisze
- uzyc to co Ci napisalem i modlic sie ze starczy z dziesietnego na dwojkowy
Jeżeli używacie kompilatora, który to zapewnia: http://www.cplusplus.com/reference/cstdlib/itoa/
Jeszcze podbiję: czy jest możliwość zapisywania dzięki tej funkcji itoa do stringa? " itoa(x, STRINGx, 2);" nie działa.
Do zapisywania do string
'a służy: http://www.cplusplus.com/reference/string/to_string/
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
Funkcja zapisuje do tablicy char, czy jest możliwość zapisania do stringa?
W C nie ma string'a, zaś w C++ teoretycznie można:
string buffer(32,'\0');
itoa(i,&buffer[0],2);
buffer=string(&buffer[0]);
zaś w praktyce odradzam.
Od początku pisałem o c++ ;)
A dlaczego odradzasz?
Czyli nie ma funkcji co by konwertowała do stringa gdzie nie trzeba się przejmować rozmiarem?
Jest, podano ci to ponad dwa dni temu. Nawet z przykładem: http://4programmers.net/Forum/1235655