extender for both unsigned and signed