1-1. 데이터 : 정수 형식, 2진수, 16진수, 정수 범위
카테고리: C Sharp
태그: C Sharp Programming
인프런에 있는 Rookiss님의 강의 Part1: C# 기초 프로그래밍 입문 를 듣고 정리한 필기입니다. 😀
🔔 정수 형식
C# 프로젝트 디폴트 코드
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
- Main 함수
- 프로젝트 내에 전체 딱 1개 있어야 함
- 프로그램 처음 실행할 때 가장 먼저 실행됨
- 출력 로그
Console.WirteLine
- 유니티 C# 에선 Debug.Log 였는데 좀 다르다.
C# 에선
auto
안쓰고var
쓰더라..
정수
변수
: 데이터를 저장하는 바구니
int hp;
hp = 100;
Console.WriteLine("Hello World! {0}", hp);
💎출력💎
Hello World! 100
Console.WirteLine
- printf 처럼 형식 문자열처럼 쓸 수도 있는 것 같다.
{0}
자리에 int 변수hp
의 값이 들어간다.
- 정수 종류
- byte : 1byte(8 bit)짜리 바구니
- 예외적으로 양수만! 0 ~ 255 표현
- \(2^8\) 개의 정수 표현 가능
- cf) 문명1에서 간디가 byte형으로 선언된 공격성이 1 이였는데 민주주의 노선을 선택하면 공격성이 -2 감소하였다고 한다. 아이러니하게도 -1이 되는 것이 아닌, 0 ~ 255만 표현할 수 있는 byte 특성 상 underflow 때문에 255가 되었는데 이때문에 간디가 255 공격성을 가진 폭력 간디로 변하는 버그가 있었다고 한다. ㄷㄷ
- 예외적으로 양수만! 0 ~ 255 표현
- short : 2byte(16 bit)짜리 바구니
- \(2^{16}\) 개의 정수 표현 가능
- int : 4byte(32 bit)짜리 바구니
- \(2^{32}\) 개의 정수 표현 가능
- long : 8byte(64 bit)짜리 바구니
- \(2^{64}\) 개의 정수 표현 가능
- byte : 1byte(8 bit)짜리 바구니
보통
int
를 사용하지만 상황에 따라 더 작은 자료형(byte, short)를 사용할 수도, 더 큰 자료형(long)을 사용할 수도 있다.
🔔 2진수, 10진수, 16진수
- 10 진수
- 0 1 2 3 4 5 6 7 8 9
- 위 10가지 숫자의 조합으로 수를 표현한다.
- 사람에게 자연스러운 수
- 2 진수
- 0 1
- 위 2가지 숫자의 조합으로 수를 표현한다.
- 10진수와의 구분을 위해 앞에
0b
를 붙임0b00
,0b01
,0b10
,0b11
, …
- 컴퓨터에게 자연스러운 수
- 16 진수
- 0 1 2 3 4 5 6 7 8 9 A B C D E F
- 위 16가지 숫자의 조합으로 수를 표현한다.
- 10진수와의 구분을 위해 앞에
0x
를 붙임0x00
,0x01
, …0x0E
,0x0F
,0x10
- 4자리의 2 진수를 1 자리의 16 진수로 줄여쓸 수 있다는 장점이 있다. 👉 16 진수를 사용하는 이유
0b10001111
=0x8F
🔔 정수의 유효 범위
1 byte = 8 bit
- 윈도우 계산기 - 프로그래머로 가면 이렇게 비트 계산기를 쓸 수 있음
비트의 음수 표현
- 음수 표현시
2 의 보수
사용하는 이유- 👉 0을 +0 -0 두가지로 표현하지 않기 위해 사용.
-0
을 없애기 위해 전체 비트에 1을 더해-0
을 하나 밖에 없는 진짜 0으로 만들어준다.
- 👉 0을 +0 -0 두가지로 표현하지 않기 위해 사용.
- 음수로 변환하기
- 보수 취하기 : 비트의 0은 1로, 1은 0으로 바꿔치기
- +1 해주기
🔔 정수 데이터의 종류
byte
1byte
byte
- 1byte (0 ~ 255) 👉 양수만 표현 가능
sbyte
- 1byte (-128 ~ 127) 👉 음수 양수 모두 표현 가능
short
2byte
short
- 2byte (-3만 ~ 3만) 👉 음수 양수 모두 표현 가능
ushort
- 2byte (0 ~ 6만) 👉 양수만 표현 가능
int
4byte
int
long
8byte
long
- 8byte 👉 음수 양수 모두 표현 가능
uint
- 8byte 👉 양수만 표현 가능
오직 양수만
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기