Das Wichtigste hab ich vergessen. Wie ich Dich verstehe willst Du nicht einfach addieren, sondern die mit den Variablen gebildeten Ziffern zur Basis 16 ermitteln. ->
x = a * 4096 + b * 256 + c * 16 + d.
Alternativ könntest Du auch mit Bit-weise ODER und vorheriger Verschiebung der Variablenwerte an die jeweilige Position arbeiten.
MfG