Ik probeer een omgekeerde hexadecimale achtige string te converteren naar het nummer. De hexstring is altijd 8 characters, bestaande uit [0-9|A-F].
Echter, als ik "F2000000" erin gooi, krijg ik 274
. Als ik "number += (n*(2^(4*i)));" gebruik, dan komt er opeens 42 uit. Er moet toch echt 47 uitkomen.
Ben ik nou zo dom of
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| private int
string2number (char data[])
{
int number = 0;
char fourbits;
char num2char[] = { '0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', 'A', 'B',
'C', 'D', 'E', 'F' };
for (int i=0;i<8;i++)
{
fourbits = data[i];
for (int n=0;n<16;n++)
{
if (fourbits == num2char[n])
{
number += (n*(16^i));
break;
}
//... hier komt dus een exception
}
}
return number;
} |
Echter, als ik "F2000000" erin gooi, krijg ik 274
Ben ik nou zo dom of