이거 왜 결과값이 -12가 나오는거임?
println(bNum2); = 500이어야 되는거 아님?
디씨 텍스트에 코드 고대로 복붙안대요~
코드 이미지 첨부 다시했습니다! 도와주세요
코드 ㅇㄷ?
이미지 첨부 다시 했습니다
우리 한번 byte의 크기를 생각해보아요
byte는 1바이트라서 int에서 byte 변환할때 (byte)를 붙여서 강제형변환 해주는거 아닌가요?
그럼 오버플로우를 고려해야겠지
signed byte가 나타낼 수 있는 수는 -128~127
앗 byte 는 정수 -127부터 128까지 이기 때문에 500을 나타낼 수 없어서 순환해서 -12
맞음
이군요 감사합니다 숫자는 좀 틀렸네요 도움이 됐어요 감사합니다!!
500은 2진수로 1 1111 0100인데 byte는 8비트까지 표현가능하니 1111 0100으로 짤려서 -12야
signed고 제일 큰 비트가 1이니 2의보수로 계산해줘야댐
디씨 텍스트에 코드 고대로 복붙안대요~
코드 이미지 첨부 다시했습니다! 도와주세요
코드 ㅇㄷ?
이미지 첨부 다시 했습니다
우리 한번 byte의 크기를 생각해보아요
byte는 1바이트라서 int에서 byte 변환할때 (byte)를 붙여서 강제형변환 해주는거 아닌가요?
그럼 오버플로우를 고려해야겠지
signed byte가 나타낼 수 있는 수는 -128~127
앗 byte 는 정수 -127부터 128까지 이기 때문에 500을 나타낼 수 없어서 순환해서 -12
맞음
이군요 감사합니다 숫자는 좀 틀렸네요 도움이 됐어요 감사합니다!!
500은 2진수로 1 1111 0100인데 byte는 8비트까지 표현가능하니 1111 0100으로 짤려서 -12야
signed고 제일 큰 비트가 1이니 2의보수로 계산해줘야댐