sscanf の %x は、文字列で記述された数字+アルファベットの列を 16進数として抜き出す
sscanf("10", "%x", &val); → val の値は 10進で16 となる

0xDC 0x18 の並びから どういう整数値にしたいんだろうか?