itoa()

I wrote this now:

void setup() {
Serial.begin(115200);
}

void loop() {
  for(int i=0; i<8;i++){
char binary[4] = {0};
 byte value=0b00000000;
 int number=i;
 itoa(number,binary,2);
 bitWrite(value,2,binary[0]-'0');
 bitWrite(value,1,binary[1]-'0');
 bitWrite(value,0,binary[2]-'0');
 Serial.println("binary");
 Serial.println(binary);
 Serial.println(value,BIN);
 }
}

and it give out this:

binary
0
11
binary
1
111
binary
10
101
binary
11
111
binary
100
100
binary
101
101
binary
110
110
binary
111
111

so it is working with numbers greater than 3, but with numbers that are smaller its not. does anyone know why?