프로그래밍

(자바)타입 강제변환 질문좀 할께요

300을 byte로 강제변환 할 경우엔 byte 범위를 초과한 나머지값...44를 출력한다는건 알겠는데 왜 그 256 이하인 값도 그대로 출력 못하는건가요?

 

예를 들면 

 

System.out.print((byte)256); 하면

0이 출력됩니다.

 

또 -128~127까진 그대로 출력하는데 왜 이렇게 일관성이 없게 출력하는지 이유좀 간단히 알 수 있을까요? 이게 16진수랑 관련 있는건지..

 

답변 해주신 분께 미리 감사드립니다.

5개의 댓글

2020.03.30

일관성이 없는게 아니라 일관성이 있는 것임

우선 java의 byte 자료형은 2^8개의 정수를 표현할 수 있는데, 이 때 표현하는 범위는 음수, 양수 포함.

그러므로 256개중 절반은 양수, 절반은 음수를 표현할 수 있음.

 

그러므로 -128~-1 음수, 0, 1~128 양수까지만 저장할 수 있음 그 이상은 자료형에 저장할 수 있는 범위 초과이므로 출력을 못함.

 

256을 byte타입으로 형변환하면 127까지는 127이지만 그 초과분은 다시 거꾸로 -128부터 시작함. 그래서 256-127 = 129이므로

-128부터 세어나가다보면 -128로부터 129번째가 0이 되는 걸 알 수 있을 거임

그래서 0이 출력된거야.

257이라고 하면 1이 출력될거임.

2
2020.03.30
@숨은음은

답변 감사합니다. 수긍할 수 있을 정도로 이해했습니다.

0
2020.03.30
@찰나생멸

앗 미안.. -128~127까지 표현가능임 위에 실수로 1~128이라고 썻넹

고것만 수정하고 싶은데 답글달려서 수정이 안됨 ㅠ

0
2020.03.30

각 타입별로 표현할 수 있는 범위의 한계가 있음

컴퓨터는 이진수만 이해할 수 있고 byte는 8bit라는건까진 알고있지?

 

일반적으로 컴퓨터에서는 최상위비트(MSB)를 부호비트로 사용하고 해당 비트가 0일때 양수 1일때 음수로 표현함

정수형은 총 2^n개로 표현가능한데 byte는 8bit이고 숫자 0과 음수, 양수를 포함해서 -2n^(n-1) ~ 2^(n-1) - 1까지 표현이 가능해짐

 

진법변환과 보수법칙을 찾아서 공부하면 이해가 쉬울거야

 

본론으로 돌아가서 정수 300은 이진법으로 표현하면 32bit로 된 값일꺼야 앞에 빈자리들은 0으로 채워질꺼고 4자리씩 자른다 생각하고 의미있는 값들만 보면 0001/0010/1100 이고 이를 byte로 형변환하게되면 앞의 bit들이 다 떨어져나가고 제일 오른쪽 8bit만 남게되어 0010/1100만 남을거임

해당 bit를 10진수로 계산해보면 부호비트가 0이므로 양수로 표현되고 값은 32 + 8 + 4가 되므로 결과값인 44가 나오게되는거여

 

0
2020.03.30
@돌입

아 이렇게 생각할 수 있군요. 알려줘서 고마워요!

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180025 [컴퓨터] 이거 모니터 고장난건가 EPS 0 42 분 전 15
180024 [컴퓨터] 수냉쿨러 없었으면 덕트 쪽으로 컴터개발이 이루어 졋을듯 2 침혜랄 0 1 시간 전 47
180023 [컴퓨터] 요즘 보드들은 wifi가 신기하게 나오네 2 교미짝짓기 0 1 시간 전 91
180022 [잡담] 맥북 병은 사야 치료됨 8 장난없는사람 0 3 시간 전 190
180021 [컴퓨터] 모니터 이 둘 중이 뭐가 더 나음? 5 XDLOL 0 3 시간 전 85
180020 [컴퓨터] 모니터질문 or 추천좀용 10 20202021 0 5 시간 전 84
180019 [잡담] AI 요약 개웃기네 3 아도크 1 6 시간 전 237
180018 [컴퓨터] 모니터 사야하는데 11 XDLOL 0 6 시간 전 97
180017 [잡담] 크로미움 브라우저들 엔비디아 화면 깨지는 글리치 더 심해지네 1 ye 1 6 시간 전 96
180016 [잡담] s23 OneUI 6.1 업뎃 떴다 2 아도크 0 7 시간 전 270
180015 [컴퓨터] 영상편집용으로 프레데터 헬리오스 어떳슴까?? 2 으라야야 0 8 시간 전 75
180014 [잡담] 최근에 유튭프리미엄 우회 해본사람? 14 itx 0 8 시간 전 270
180013 [컴퓨터] 그래픽카드 하나 선물 해줘야 할거같은데 추천좀 12 침혜랄 0 9 시간 전 167
180012 [컴퓨터] g304 왤케 비쌈....ㄷ 16 스카이락 1 9 시간 전 240
180011 [잡담] 독거미 저건 뭐 어떻게되먹은거냐 4 쌉가능충 0 10 시간 전 267
180010 [잡담] 헤드셋 질문 4 하이람쥐썬더 0 10 시간 전 46
180009 [견적] 무선 이어폰 헤드셋 추천좀요 9 프갤갤갤갤 0 10 시간 전 81
180008 [모바일] 테블릿 키보드 미인식 어떻게 해야할까요?.. 4 匠人 0 10 시간 전 55
180007 [잡담] 타오직구 레이니왔다 11 짤랑이짤랑 0 11 시간 전 212
180006 [잡담] 혹시 드렁크디어 a75 쓰시는분 있으신가요? 3 백형 0 11 시간 전 48