уходя крикну в закрывающуюся дверь

проблемы со сдвигом в права
(0x80 >> 1)
если компилятору стукнет что это знаковый тип, то вместо ожидаемых 0x40 будет 0xC0
а если его по какой то причине зарубит сделать арифметический сдвиг для знакового
то 0x81 может переделать в 0xC1. но как добиться последнего я не очень в курсе, это если попросить разделить на 2, то он так может сделать....
но на самом деле букв в компутере дофига, и лишние UL никому не помешают