Se devi scriverlo su un display, non è più semplice assegnare un valore da 1 a 8 e poi con uno switch/case scrivere N o NE o E ecc.?
byte dir=(head+22)/45;
if(dir==8) dir=0;
switch(dir)
{
case 0:
lcd.print("N ");
break;
case 1:
lcd.print("NE");
break;
case 2:
lcd.print("E ");
break;
case 3:
lcd.print("SE");
break;
case 4:
lcd.print("S ");
break;
case 5:
lcd.print("SW");
break;
case 6:
lcd.print("W ");
break;
case 7:
lcd.print("NW");
break;
}