Для шестнадцатеричного эквивалентного значения:
Вы можете использовать функцию _pow
(возвращает x в степень y) и while
следующим образом, который вернет вам шестнадцатеричное эквивалентное значение:
double decToHexEquivalent(int n)
{
int counter,remainder,decimal_number,hexadecimal_number = 0;
while(n!=0)
{
remainder = decimal_number % 16;
hexadecimal_number = hexadecimal_number + remainder * _pow(10, counter);
n=n/16;
++counter;
}
return hexadecimal_number;
}
Вы можете вызвать вышеуказанную функцию следующим образом:
testfunction xyz(int n)
{
write("Hexadecimal:%d", decToHexa(n));
}
Внимание: не проверено
Для шестнадцатеричного значения
объявить глобальную переменную char buffer[100]
в разделе переменных
variables
{
char buffer[100];
}
и затем с помощью функции snprintf
вы можете преобразовать целочисленную переменную в массив символов, например:
void dectohexValue(int decimal_number)
{
snprintf(buffer,elcount(buffer),"%02X",decimal_number);
}
тогда, наконец, вы можете использовать функцию следующим образом:
testfunction xyz(int n)
{
dectohexValue(n);
write("Hexadecimal:%s", buffer);
}