어떤 메모리 4바이트를 차지하는 111101010... 요딴 놈있다고 해봐
int도 4바이트, float도 4바이트인데 111101010... 이딴식으로 되어있으면 cpu가 이게 int인지 float인지 어캐 알고 계산하냐
cpu가 이거 자료형 알아쳐먹으려면 어딘가에 이 새끼 int형이다, float형이다 라고 표시 해놔야하는데 그럼 4바이트 넘는 거 아니냐?
컴돌 새키들 어디서 밑장빼기로 구라치고 있어
어떤 메모리 4바이트를 차지하는 111101010... 요딴 놈있다고 해봐
int도 4바이트, float도 4바이트인데 111101010... 이딴식으로 되어있으면 cpu가 이게 int인지 float인지 어캐 알고 계산하냐
cpu가 이거 자료형 알아쳐먹으려면 어딘가에 이 새끼 int형이다, float형이다 라고 표시 해놔야하는데 그럼 4바이트 넘는 거 아니냐?
컴돌 새키들 어디서 밑장빼기로 구라치고 있어
딱국 ㅎㅇ
1비트 쓰지않나 그래서 소수점찍는
1비트만 쓰면 int랑 float은 4바이트 + 1비트 쓰는 거지. 그리고 1비트만 쓰는걸로는 다른 자료형하고 구분하기 부족하니 넉넉히 1바이트 더 써서 대충 5바이트 해야 cpu가 알아먹지
아니야 일단 프갤러2는 장난친거같고 똑같은 바이너리를 어떤 타입을 가지고 읽느냐에 따라서 문맥이 달라지는거야 이친구야 바이너리에는 타입정보가 없어. 그래서 너 int 쓰고, 그걸 float로 읽으면 값 변환되어서 나옴. 물론 일반적인 C언어의 형변환이 아닌, 바이너리조작 쓰레기값 나옴
아 맞다 글터라. char를 int로 읽을수도 있었지 그럼 컴은 어캐 이새키가 int인지 아닌지 아냐? 컴파일할 때 이새끼 int예요 하고 표시 붙여서 컴파일 되는거임?
컴퓨터는 그냥 인트인지 float인지 몰라 010101만 저장하고 니가 불러올때 int로 불러오면 그 32비트짜리 010101을 인트로 가져오는거고 float이면 float으로 가져오는거임 이새끼 기본이 안되있네
어셈블리 언어에서 특정 주소에서 값을 읽고 정수덧셈을 하던지 플로트나눗셈을 하던지 하는거임
그냥 값은 바이너리로 쓰인다고 생각해. 어려울거없어.
같은 바이너리에 정수덧셈할때는 인트인거처럼 취급하고, 플로트덧셈할때는 플로트인거처럼취급하는거임
ㅇㅋ 땡큐