Показать сообщение отдельно

  #8  
Старый 13.05.2009, 20:06
CHIP:))
Познающий
Регистрация: 17.01.2007
Сообщений: 94
С нами: 10165774

Репутация: 65
По умолчанию

В общем у меня новая проблема) Вроде все математически правильно, только вот компилятор неправильно считает. Я уже незнаю в чем может ошибка заключаться. Если я беру числа 16ные до FF то все нормально работает и преобразуется, но если попадается FF то я получаю странный результат, может кто нить помочь разобраться?
#include <stdio.h>

unsigned int i,k,r,p,t;
unsigned char ch1,ch2;
char array[] = {'0','1','2','3','4','5','6','7','8','9','A','B',' C','D','E','F'};
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
int main (void)
{
ch1='6'; // starshii
ch2='A'; // mladshii
i=k=0;
while(k<17)
{
if(ch1==array[k])
{
r=k;
printf("k %d ",k);
}
k++;
}
while(i<17)
{
if(ch2==array[i])
{
t=(r*16^1+i)-1;
printf("i %d ",i);
printf("Hex %X Decimal %d",t,t);
}
i++;
}
return 1;
}
 
Ответить с цитированием