String message = "1";
byte[] bytes = message.getBytes();
System.out.println(bytes[0] + ": ");
for (int i = 0; i < 8; i++) {
System.out.print((bytes[0] >> (7 - i)) + " ");
}
Output: 49:
0 0 1 3 6 12 24 49
그래서 내 문자열을 ASCII에서 49
입니다 1
입니다 값. 내가 이해하려고 노력하는 것은 내 비트가 3,6,12,24 및 49 값을 갖는 이유입니다. 뒤에 무슨 일이 일어나고, 왜 처음과 같이 0과 1만이 아닌가? 이진시프트 된 비트는
'49'의 이진 표현을 노트북에 연필로 쓰십시오. 그리고 1 씩 1 씩 8 번 이동하고 각 턴마다 어떤 가치가 있는지보십시오. –
알겠습니다. 각 시퀀스를 바이너리로 인쇄 할 수있는 방법이 있습니까? –
예, 결과에서 '& 1'을 수행하여 마지막 비트를 얻을 수 있습니다. –