普通に考えればこれで良いじゃないか。
if ((unsigned)a <= 3)
  b = a;
高速化を狙うならこっちが良いかもしれない。
b = a | 3; /* 2進数での11*/