Looks like he is masking the sint storing the result in temp and converting to ASCII equivalent
so for example 1F
first mask takes just the '1' portion
Xf0
ie mask is 1111 0000
result is 16#10 or 16
/16
gives 1
add 48
gives 49
which if you look up in ascii table is '1'
store in string
next mask you original SINT 1F
0x0f
0000 1111
result is
16#0f
or 15
add 48
gives 63 however ascii table 0-9 is 48-57 and 'A-F' is 65-70
so since our result is > 57 add another 7 to make it 70 in this case which happens to be ascii 'f'