inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

독하게 되새기는 C 프로그래밍

정수와 Endian 그리고 2의 보수

정수와 Endian 그리고 2의 보수 15:05쯤 질문이있습니다.

해결된 질문

420

dohyun_lim

작성한 질문수 67

0

 안녕하세요 선생님 질문이 2개 있습니다.

1) 15:05쯤에

"1byte의 메모리에 64bit 상수가 주소로 부여됩니다."

라는 의미가

단순히 저 메모리 창에서 메모리(1byte)에 대한 주소를 2^64 까지 부여할 수 있으니까 0x자릿수가 늘어난것이다.

라고 이해하면 맞나요..?

 

2) 추가적으로 a의 타입을 float , double로 바꾸는 경우 전혀 다른 값이 들어가던데 gpt를 통해 검색하니

Let's break down the hexadecimal representation "00 00 20 41" into binary and decode it:

Convert each hexadecimal digit into its corresponding 4-bit binary representation:

0: 0000
2: 0010
0: 0000
4: 0100
1: 0001
Concatenate the binary representations:

000000000000001000000100000001
Split the binary representation into its components based on the IEEE 754 format:

Sign bit (1 bit): 0 (positive value)
Exponent bits (8 bits): 00000000
Mantissa bits (23 bits): 00000100000000100000001
Apply the IEEE 754 formula:

Sign: 1^(0) = 1 (positive)
Exponent: 2^(0) - 127 = -127
Mantissa: 1.00000100000000100000001 (binary)
The final value is calculated as (1 + mantissa) * 2^(exponent):

(1 + 1.00000100000000100000001) * 2^(-127) = 1.00000100000000100000001 * 2^(-127) = 1.00000100000000100000001 * 2^(-23) * 2^(-104) ≈ 10
Therefore, the hexadecimal representation "00 00 20 41" corresponds to the floating-point value 10 in C.


이런식으로 설명해줬는데 부동소수점 관련된이야기인것을 알겠는데 자세히 알아야 하나요...?

c kernel secure-coding

답변 1

1

널널한 개발자

  1. 64비트 시스템은 1바이트 메모리에 64비트(2^64)주소를 부여해 관리합니다. 0x자릿수가 늘어난 것은 64비트 상수라서 그렇습니다.

  2. 이는 IEEE 754 표준과 관련된 내용입니다. 단정도 형식(float)과 배정도 형식(double)은 구조가 다르기 때문에 16진수로 봤을 때 같은 값으로 보여도 당연히 해석방식이 달라지면 전혀 엉뚱한 값이 됩니다. ChatGPT는 이를 좀 더 구체적으로 설명해주고 있는 것입니다.

참고하시기 바랍니다.

0

dohyun_lim

강의를 들으니 뒤에 다 내용이 나오는군요..ㅋㅋㅋ

답변 감사합니다.

태어나서 첨으로 Hxd로 막 수정하고 이런거 해보니까 너무 신기하고 재미있네요 감사합니다.

병행성 제어

0

41

2

질문이 있습니다(강의와 거의 상관이 없는)

0

72

2

컴파일러 서적 질문입니다

0

155

1

코드생성 및 최적화 질문입니다

0

152

1

Hex Editor를 이용한 다국어 번역 관련 질문입니다

0

206

2

큐의 배열을 넘겨도 정상작동합니다

0

155

2

캐너리비트에 관하여 질문

0

207

3

상수화된 문자열에 질문있습니다

0

167

1

함수 호출 매개변수 전달에 대한 질문 드립니다.

0

187

1

단항 증감 연산에 따른 다른 접근에 대한 질문있습니다.

0

203

2

함수호출 규약 종류에 따른 장단점 여부

0

223

2

정적라이브러리 링크 오류

0

223

1

const char *를 char*에 초기화할때의 컴파일 에러 처리 방식 문의

0

348

2

pszParam 수정이 왜 Hello World print에도 영향을 미치는지 이해가 잘 안됩니다.

0

248

2

비선형 자료구조

0

307

1

자료 구조 공부 후에

0

349

1

강의자료 관련

0

248

1

마지막에 말씀하신 부분 질문드립니다.

0

209

1

문자열 관련 질문 드립니다

0

286

1

라이브러리

0

270

1

부동소수점

0

388

1

왜 변수 주소 사이에 offset이 있는 건가요?

0

298

2

stack 쌓는 순서

0

502

1

함수호출이랑 쓰레드

0

407

1