Smooth Moving code

Yes, >> and << are bit-shifting operations. Doing number<<1 shifts bits one to the left, effectively doubling the number - a little bit faster alternative to number*2. Doing number>>1 shifts bits one to the right , effectively halving the number - a faster alternative to number/2.
It’s not applicable to floats and doubles though, as you can’t just bit-shift these to halve/double them, unlike with bytes, shorts, integers, longs etc…

And yes, constrain(a,b,c) function could be completely replaced with min(max(a,b),c). So, his code could be understood easier as:

void move() {
    x = min(max(x + v*(int(isRight) - int(isLeft)), d>>1)  , width  - (d>>1));
    y = min(max(y + v*(int(isDown)  - int(isUp)),   d>>1)  , height - (d>>1));
  }

It calculates how much x and y should change based on keys, and then clamps it between half the diameter and the other side minus half the diameter, resulting in the Player's edge aligning with the borders of the screen.