Сайт SPYRYTUS_LTD© SPYRYTUS - учеба, работа и развлечения title image
Новости :
    Software News
    Hardware News
Обзоры :
    Главная
    Алгоритмы
    Готовые программы
    Игры
Разработка :
    Свои разработки
    Продажа и заказ ПО
Развлечения :
    Отдохни !

Алгоритм преобразования шестнадцатиричного числа в целое число

      Алгоритм преобразования шестнадцатиричного числа в целое число, очень простой, и для его реализации достаточно вспомнить курс информатики. Математический вид перевода, выглядит следующим образом: FFFF = 15*163+15*162+15*161+15*160 = 65535, или еще такой пример: 7F = 15*161+15*160 = 127
      Для тех, кто не понял обьясняю подробно - показатель степени в который нужно возвести число 16 равен количеству шестнадцатеричных цифр минус 1, и умноженное на текущий разряд. Y(dec) = 16hex-1*X[0]+16hex-2*X[1]+ ... + 16hex-n*X[n].

      Ниже приведенны две функции, первая работает под Win32, а вторая под Win16. Для обоих платформ нужно подключить библиотеку Math.h.

int HexToInt(String Hex)
{
	int Digit = Hex.Length();
	int Result = 0;
	for (int i=1;i<=Digit;i++)
	{
		if (Hex[i] >= '0' && Hex[i] <= '9')
		Result += (pow(16,Digit-i)*StrToInt(Hex[i]));
		if (Hex[i] >= 'A' && Hex[i] <= 'F')
		Result += (pow(16,Digit-i)*((int)Hex[i]-'A'+10));
	}
	return Result;
}				
int HexToInt(string Hex)
{
  	int Digit = Hex.size();
  	int Result = 0;
  	for (int i=0;i<Digit;i++)
  	{
		if (Hex[i] >= '0' && Hex.c_str()[i] <= '9')
		Result += (pow(16,Digit-i-1)*(Hex[i]-0x30));
		if (Hex[i] >= 'A' && Hex[i] <= 'F')
		Result += (pow(16,Digit-i-1)*((int)Hex[i]-'A'+10));
  	}
  	return Result;
}		

      Готовый вариант программы сможете найти, щелкнув в навигационной панели ссылку Готовые программы.

 
  Перейти вверх страници ВВЕРХ Перейти вверх страници
Сайт хостинга Рейтинг посещаемости Поисковая машина Интернет-магазин CD-дисков
Хостинг от uCoz