Here are the bitwise operators. Note that combinations of signed and unsigned types lead to promotion to larger types. I don't think that is right, especially as the high bits will be zeroed anyway when the unsigned number is sign extended. Note also the object type used to promote the 'Q' (unsigned long long) type. On my machine i and l are the same precision, but different c-types, so it would also make me feel better if the rows/cols for l,L used the same types, making the functions symmetric in the arguments. bitwise_and not symmetric in1 ? , b , B , h , H , i , I , l , L , q , Q , f , d , g , F , D , G , -------------------------------------------------------------------------------------- in2 ? | ? , b , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 b | b , b , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 B | B , h , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 h | h , h , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 H | H , i , H , i , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 i | i , i , i , i , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 I | I , q , I , q , I , q , I , q , I , q , Q , err, err, err, err, err, err, in2 l | l , l , l , l , l , l , q , l , q , q , O , err, err, err, err, err, err, in2 L | L , q , L , q , L , q , L , q , L , q , Q , err, err, err, err, err, err, in2 q | q , q , q , q , q , q , q , q , q , q , O , err, err, err, err, err, err, in2 Q | Q , O , Q , O , Q , O , Q , O , Q , O , Q , err, err, err, err, err, err, in2 f | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 d | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 g | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 F | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 D | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 G | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, bitwise_or not symmetric in1 ? , b , B , h , H , i , I , l , L , q , Q , f , d , g , F , D , G , -------------------------------------------------------------------------------------- in2 ? | ? , b , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 b | b , b , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 B | B , h , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 h | h , h , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 H | H , i , H , i , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 i | i , i , i , i , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 I | I , q , I , q , I , q , I , q , I , q , Q , err, err, err, err, err, err, in2 l | l , l , l , l , l , l , q , l , q , q , O , err, err, err, err, err, err, in2 L | L , q , L , q , L , q , L , q , L , q , Q , err, err, err, err, err, err, in2 q | q , q , q , q , q , q , q , q , q , q , O , err, err, err, err, err, err, in2 Q | Q , O , Q , O , Q , O , Q , O , Q , O , Q , err, err, err, err, err, err, in2 f | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 d | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 g | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 F | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 D | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 G | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, bitwise_xor not symmetric in1 ? , b , B , h , H , i , I , l , L , q , Q , f , d , g , F , D , G , -------------------------------------------------------------------------------------- in2 ? | ? , b , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 b | b , b , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 B | B , h , B , h , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 h | h , h , h , h , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 H | H , i , H , i , H , i , I , i , I , q , Q , err, err, err, err, err, err, in2 i | i , i , i , i , i , i , q , i , q , q , O , err, err, err, err, err, err, in2 I | I , q , I , q , I , q , I , q , I , q , Q , err, err, err, err, err, err, in2 l | l , l , l , l , l , l , q , l , q , q , O , err, err, err, err, err, err, in2 L | L , q , L , q , L , q , L , q , L , q , Q , err, err, err, err, err, err, in2 q | q , q , q , q , q , q , q , q , q , q , O , err, err, err, err, err, err, in2 Q | Q , O , Q , O , Q , O , Q , O , Q , O , Q , err, err, err, err, err, err, in2 f | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 d | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 g | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 F | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 D | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, in2 G | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, Chuck