[C++]_S1-05_문자와_엔디안

신치우·2023년 12월 3일

CPP

목록 보기
5/62

저장된 데이터는 변하지 않는다 우리가 어떻게 해석하느냐의 차이가 있을 뿐 (메모리에 저장될땐 항상 이진수로 저장되니까안)

  • a가 저장된 형태를 보자


    데이터를 저장할때 꼭 하나의 값만 입력하지 않아도 된다. 위와 같이 작성 후 저장된 모습을 보면 주소에 차곡차곡 저장된 것을 확인할 수 있다.

  • 그러면 msg는 어떻게 저장이 되어있을까?


    각각의 글자가 아스키 코드로 변환되어서 저장되어있는 것을 확인할 수 있다.
    역으로 바꿔서 테스트를 해보면 Hello Wolrd가 출력되는 것을 볼 수 있다.

  • 그리고 마지막 값은 항상 0이다.

    아스키코드에서 0Null을 의미한다. 그리고 값이 끝났음을 알리는 부분이기도 하다.

Big-Endian and Little-Endian


b를 한번 살펴보자.
우리는 분명 값을 12345678 순서로 넣었는데 저장된 값은 78, 56, 34, 12 로 되어 있는 것을 알 수 있다.
이는 값을 저장하는 방법인 Little-EndianBig-Endian의 차이이다

- 빅엔디언의 장점 :

개발자의 디버깅을 편하게 해준다 - 사람이 읽고 쓰는 순서와 동일하기 때문에.
숫자 비교에 유리하다

- 리틀엔디언의 장점 :

수치 계산시 빅엔디언보다 더 빠른 수치를 보여준다.
사람이 계산하듯이 뒤에서부터 계산해오기 때문이다.
그리고 캐스팅(데이터 크기를 줄인 후 다른 데이터로 변환하는 것)에 유리하다.

대체로 intel cpu는 리틀엔디안을 사용하고 AMD는 빅엔디안 방식을 사용한다

ref : 리틀엔디언 vs 빅엔디언

오늘은 여기까지
SW정글에서 했던 내용들이 반복되고 있다. 당시에 배웠던 내용들이 틀리지 않았다는 것에 또 한번 안도감을 느낀다. 다시 한번 잘 되새기고 운영체재 책과 컴퓨터 시스템을 또 한번 읽어도 좋을 것 같다

profile
https://shin8037.tistory.com/

0개의 댓글