По поводу знаковых/беззнаковых типов - да, их можно объединить, но тогда нужно добавить знаковые форматы вывода, знаковые тайпкасты, операции знакового умножения, знакового деления и т.п.