강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của angelee3112895
angelee3112895

câu hỏi đã được viết

Khóa học giới thiệu về lập trình Java (renew ver.) - Từ người mới bắt đầu đến việc làm nhà phát triển!!

kiểu dữ liệu cơ bản

명시적 형변환 데이터 누실

Viết

·

308

3

int iVAr = 123456;

byte bVar = (byte)iVar;

System.out.println("bVar = " +bVar);

을 돌리면 bVar = 64 가 나오는 계산 과정이 이해가 안돼요ㅜㅜ

byte가 지원되는 숫자가 +- 128 까지라 이 이상의 숫자는 짤린다는건 알겠는데

어떤 계산과정을 거쳐서 ’64’라는 숫자가 도출되는지 아시는 분 있으면 답변 부탁드려요

java

Câu trả lời 3

8

int는 4byte라 총 64비트로 표현하는데요
123456은 2진수로
0000 0000 0000 0001 1110 0010 0100 0000 입니다.
여기서 byte로 형변환을 하면 1byte 즉 8비트만 표현하는데요
뒤에서 8개만 남고 나머진 버려져 0100 0000 입니다.
그래서 10진수로 64입니다.

3

윗윗댓글 오타네요. 1byte = 8bit라 4byte = 32bit입니다. 

2

int는 4 byte라 총 32 bit으로 표현되지 않나요?

Hình ảnh hồ sơ của angelee3112895
angelee3112895

câu hỏi đã được viết

Đặt câu hỏi