Mam pewien problem, pierwszy podstawowy znajduje się w moim kodzie. Dlaczego w tej mojej funkcji ten switch nie działa?
14 razy wyskakuje error : case label "(od 2 do 14)" not within a switch statement.
string from2to16(string binary)
{
string hex="";
int length = binary.size();
int parts = ceil(length/4);
for(int i=0;i<parts*4;i+=4)
{
int partvalue=0;
for(int j=i;j<i+4;j++)
{
if(binary[0]==1)
{
partvalue += 1;
}
if(binary[1]==1)
{
partvalue += 2;
}
if(binary[2]==1)
{
partvalue += 4;
}
if(binary[3]==1)
{
partvalue += 8;
}
switch(partvalue)
case 1: hex+="1"; break;
case 2: hex+="2"; break;
case 3: hex+="3"; break;
case 4: hex+="4"; break;
case 5: hex+="5"; break;
case 6: hex+="6"; break;
case 7: hex+="7"; break;
case 8: hex+="8"; break;
case 9: hex+="9"; break;
case 10: hex+="A"; break;
case 11: hex+="B"; break;
case 12: hex+="C"; break;
case 13: hex+="D"; break;
case 14: hex+="E"; break;
case 15: hex+="F"; break;
}
}
return hex;
}
Poza tym mam jeszcze inne pytanie, czy isnieją w c++ gotowe fukcje do zamiany w rózne systemy liczbowe i jesli nie, jak mam np. zamienić liczbe z systemu 10 do 11 ? bo do 8 czy 16 to wiem.