02-2 상수와 데이터 표현 방법

marshmelody·2024년 1월 17일
0
post-thumbnail

정수 상수 표현법

=> 10진수, 8진수, 16진수

  • 10진수
    0~9의 10 가지 숫자
    표현-> 12 (숫자 그대로)
    변환 문자-> %d
  • 8진수
    0~7의 8가지 숫자
    표현-> 014 (앞에 0을 붙임)
    변환 문자-> %o
  • 16진수
    0~f의 16가지 단위 숫자
    표현-> 0xc (앞에 0x를 붙임)
    변환 문자-> %x (소문자로 출력), %X (대문자로 출력)
#include <stdio.h>

int main() {

	printf("%o\n",10);
	printf("%x\n",10);
	printf("%X\n",10);
	
	return 0;
}

출력 결과
12
a
A

실수 상수 표현법

  • 지수 표기법
    e가 밑수 10을 의미 (e6: 10^6, e-4: 10^-4)
    표현-> 0.0000314 -> 3.14e-5
    변환 문자-> %le
#include <stdio.h>

int main() {

	printf("%.1lf\n",1e6);
	printf("%.7lf\n",3.14e-5); //그냥 %lf로 하면 소수점 이하 여섯째 자릿수까지만 출력돼서 0.000031까지만 출력됨
	printf("%le\n",0.0000314);
	printf("%.2le\n", 0.0000314); //3.14까지만을 원하므로 le앞에 .2를 붙여준다

	return 0;
}

출력 결과
1000000.0
0.0000314
3.140000e-05
3.14e-05

문자와 문자열 상수 표현법

  • 문자
    "A"
    표현법-> 큰따옴표 사용
    변환 문자-> %s
  • 문자열
    'A'
    표현법-> 작은 따옴표 사용
    변환 문자-> %c

상수가 컴파일된 후의 비트 형태

정수 상수-> 4바이트
실수 상수-> 8바이트
문자 상수-> 4바이트 (정수와 같은 방식, 아스키 코드 값으로 변환되기 때문)

정수 상수가 컴파일된 후의 비트 형태

-> 모두 2진수로 바꾼 후 빈 공간은 모드 0으로 채움
양수-> 32비트이므로 4294967295(2^32-1)까지 표현 가능, 이보다 큰 공간이 필요하면 데이터의 크기를 8바이트로 만들기 위해 정수에 접미사 LL/ll을 붙여 사용한다.

  • 음수로 변환하기
    1) 절댓값 변환
    2) 해당 절댓값을 2진수로 변환
    3) 1의 보수를 취함(0과 1을 바꿈)
    4) 1의 보수에 1을 더함

이렇게 하면 절댓값과 원래 음수를 이진수 연산 했을 때 딱 0이 나온다.

실수 상수가 컴파일된 후의 비트 형태

실수 상수는 single, double, quad의 3 가지 형태 중 double(8바이트)이 가장 자주 사용된다.

실수 상수는 가장 첫 비트가 부호 비트(0-> 양수, 1-> 음수), 그 뒤의 11비트가 지수 부분, 나머지가 소수 부분이다.

profile
소프트웨어 전공생 백엔드 개발자 도전기

0개의 댓글

관련 채용 정보