Возможно, самый простой способ:
Используя бинарные операторы:
unsigned long var1 = 0x1011; //0001 0000 0001 0001
unsigned long var2 = 0x3034; //0011 0000 0011 0100
unsigned long result = (var1 << 16) | var2; //Magic!: 0001 0000 0001 0001 0011 0000 0011 0100
Кстати, я считаю, что это самый быстрый способ его кодирования / вычисления !
Подсказка: используйте числа без знака для бинарных операций, потому что в противном случае это может привести к неожиданным результатам!