자바 강제타입변환 질문입니다.

자바 강제타입변환 질문입니다.

작성일 2023.04.09댓글 2건
    게시물 수정 , 삭제는 로그인 필요


안녕하세요
이제 막 코딩에 입문한 초보입니다.


1. 강제타입변환


int a = 1000;

byte b = (byte)a;

System.out.println(b);


결과값이 -24가 나오는데 이해가 잘 가지 않아서 이렇게 남깁니다.

강제형변환시 byte 크기로 자른다는 규칙은 알겠는데

어떻게 저 값이 나온건지 잘 모르겠어요

ㅠㅠ


자세한 설명 부탁드립니다!






2. 문자와 숫자간의 타입 변환


int i = 70;

char c = (char)i;

System.out.println(c);


c의 값이 F 라는 결과가 나오는데

이 경우 문자형으로 저장이 돼서

컴퓨터가 인식하는 70이 F 인거라고 이해하면 되는 걸까요?





#자바 강제타입변환 #자바 상속 강제타입변환

profile_image 익명 작성일 -

1.

java 에서 int 형은 32 bit 입니다.

1000 (10) = 0000 0000 0000 0000 0000 0011 1110 1000 (2)

입니다.

byte 가 8 bit 이므로

byte b = (byte)a;

에서 b 에는 오른쪽 8 bit 가 저장됩니다.

즉,

b = 1110 1000 (2) = -24 (10)

이 수가 왜 -24 인지 모르겠으면 아래를 참조하세요.

1110 1000 (2) 1의보수 0001 0111 2의보수 0001 1000 ( = 24 (10) ) 즉, 1110 1000 의 2의보수 표현법으로 -24 임.

2.

char 형은 문자를 표현하는 데 사용합니다. (ASCII code)

아래 ascii code 표를 참조하세요.

ASCII table - A table of ASCII codes, characters and symbols (ascii-code.com)

profile_image 익명 작성일 -

저도 자세히는 기억이 안나지만...

바이트는 -128 ~127까지였나...? 그정도로 작은 크기의 정수를 표현할 수 있습니다.

int a는 1000이죠?

혹시 오버플로라고 배우셨는지 잘 모르겠어요

바이트가 표현할 수 있는 127에서 1을 더하면 값이 -128이 되어버리는 상황입니다.

그 상황과 같이 1000이 바이트 단위로 들어가니까

1000에다가 -128(0~127까지 ) -128(-128~-1까지 ) 을 계속 반복하다 보면 -128~127사이의 숫자가 나왔을때 오버플로가 더이상 일어나지 않는구나 하고 판단해서 값을 저장합니다. 그수가 -24인거구요

2. 작성자 분 말이 맞아요 조금 보충하자면 유니코드인지 아스키코드인지는 헷갈리지만.. ㅎㅎ

컴퓨터는 기본적으로 2진수로 계산합니다. 그건 잘 아시죠? 그래서 기본적으로 문자를 표현할려면 들어온 2진수 신호들을 문자로 대입시켜야 해요.

그런데 프로그래밍 언어는 고급언어자나요? 그래서 10진법 혹은 16진법으로 하나의 문자당 하나의 숫자를 대조를 시켜야 되는데 그걸 사람들이 표로 정해놨어요

하나가 아스키코드라고 미국에서 많이 사용하는 코드표고

하나가 유니코드라고 세계 공용 문자열코드표입니다.

자동타입변환 강제타입변환(자바코딩)

다른건 아니고, 자바를 공부한지 2틀된 학생입니다. 이제 공부하다가 자동타입변환 강제타입변환이라는 과정을... 왜 변환하는거지 라는 생각이들어서 질문하게 됐습니다....

자바(JAVA) 강제타입변환 문제

자바(JAVA) 강제타입변환 문제 자바를 공부중인데 사진과 같은 문제가 나왔는데 정답을 모르겠습니다. 사진과같이 컴파일 에러가 나는건 몇번이고 왜 에러가 아는지...

다형성 질문이요. (강제타입변환 / 자바)

... 함(강제타입변환) -> 타입은 부모이고 참조하는 객체는 Child인 참조변수 parent를... 연습코딩이나 단순한 코딩을 하는 경우에는 질문자님이 물어보신것처럼 Child...

자바(JAVA) 강제타입변환 문제

자바를 공부중인데 사진과 같은 문제가 나왔는데 정답을 모르겠습니다. 사진과같이... int, char, double 는 기본타입이지만, String은 참조타입으로 서로 형변환이 되지를...

자바 강제타입변환

... 꽉 채워진 비트를 가진 int를 byte로 강제타입변환하면 데이터 손실이 일어나듯이. 꽉 채워진 double을 float으로 강제 타입변환하면 데이터 손실이...

Java 강제 타입 변환 질문

... println(c2); } }[/code] c1+1에서 1은 정수형이므로 c1이 자동 타입 변환이 되서 정수형이 되어 c1+1 값이 정수형이 나오고 강제 타입 변환으로...

자바 강제타입변환 계산문제 질문!!

... 이것을 byte 타입을 형 변환하면 하위(가장 오른쪽) 8비트만 변수에 저장됩니다. 그러면 byte 타입 변수에는 11100011이 저장되는데... 컴퓨터에서는 정수를...