The usual way to do this would be to use bitwise operators to slice and copy it, bytes at a time:
b[0] = si & 0xff;
b[1] = (si >> 8) & 0xff;
although it really should be done in unsigned char, and not in the usual char, as they are signed on most systems.
.