The question is what you want to change - the behavior Timesand Plus, or Dot. Generally, a trick is Blockoften the easiest way. In this case, since it Dotdoes not call higher-level Plusor Times, you can do:
mat1 = {{1,2},{3,4}};
mat2= {{5,6},{7,8}};
Block[{Dot = Inner[BitAnd,
mat1.mat2]
{{3,0},{5,2}}
, ( Inner) - , Dot Plus Times.