Can someone explains what specific "0x30" does in the decimal to binary function below:

void dec2bin(long decimal, char *binary)

{

int k = 0, n = 0;

int neg_flag = 0;

int remain;

char temp[80]; // take care of negative input

if (decimal < 0)

{

decimal = -decimal;

neg_flag = 1;

}

do

{

remain = decimal % 2;

decimal = decimal / 2; // whittle down decimal

temp[k++] = remain + 0x30; // makes characters 0 or 1

} while (decimal > 0);

if (neg_flag)

temp[k++] = '-'; // add back - sign

else

temp[k++] = ' '; // or space

while (k >= 0)

{

binary[n++] = temp; // reverse spelling

}

binary[n-1] = 0; // end with NULL

}