https://en.wikipedia.org/g/wiki/Bitwise_operations_in_C
Le nom du define est très explicite. Tu as une variable vhl (qui doit représenter des registres vu le nom). À priori c'est un octet donc vhl & 0x0F te donne les 4 derniers bits du ton octet vhl (donc la valeur de hl) et vhl >> 4 décale de 4 bits vers la droite et te donne la valeur de 4 premiers bits du l'octet (donc la valeur de v).
Apprends à utiliser et à lire les opérateurs bits à bits, c'est super important si tu fais du développement bas niveau ou réseau, mais pas que.