Hi, I need to recreate this function (oracle) in C#:
My faulty code:
If the function is fed with: 5044857
It should return: 344MX
Code:
FUNCTION dec2hex (N in number) RETURN varchar2 IS
hexval varchar2(64);
N2 number := N;
digit number;
hexdigit char;
BEGIN
while ( N2 > 0 ) loop
digit := mod(N2, 36);
if digit > 9 then
hexdigit := chr(ascii('A') + digit - 10);
else
hexdigit := to_char(digit);
end if;
hexval := hexdigit || hexval;
N2 := trunc( N2 / 36 );
end loop;
return hexval;
END dec2hex;
My faulty code:
Code:
public string makeBarCode(string strInput)
{
string strHexValue = "";
int digit = new int();
char hexdigit = new char();
int n2 = new int();
foreach (char str in strInput)
{
n2 += str;
while (n2 > 0) {
digit += (str % 36);
if (digit > 9)
{
hexdigit += Convert.ToChar(65 + digit - 10); //65 equals A
}
else
{
hexdigit += Convert.ToChar(digit);
}
strHexValue += hexdigit.ToString();
n2 += (int)decimal.Truncate(n2 / 36);
}
}
return strHexValue;
}
If the function is fed with: 5044857
It should return: 344MX