컴퓨터의 데이터 표현방식
컴퓨터는 데이터 표현과 연산을 모두 2진수를 이용하여 처리합니다.
2진수란 데이터를 표현하는데 있어서 0과1 두개의 숫자를 쓰겠다는 의미입니다.
우리가 주로 사용하는 10진수는 0~9 10개의 숫자로 데이터를 표현하겠다는 뜻인데요.
결국 n진수는 n개의 숫자로 데이터를 표현한다는 의미입니다.
16진수는 0부터 시작해서 16개의 숫자로 이루어지지만 기본숫자는 0~9까지밖에없어서 10 = a, 11 = b 이런식으로 영어 알파벳으로 대체하여 표현합니다.
그럼 이제한번 c언어에서 8진수와 16진수를 사용해봅시다.
먼저 변수선언부분 부터 설명해드리겠습니다!
숫자 앞에 0x가 붙으면 16진수 표기법, 0이붙으면 8진수 표기법입니다.
따라서 0x1e는 16진수 1e의 뜻이고 036은 8진수 36이란 뜻입니다. 당연히
아무표기가 없으면 10진수가 됩니다.
출력을 해보면 결국 다같은 값임을 알 수 있는데요 여기서 2개의 %문자 기호가 보이시죠?
%d는 10진 정수를 출력하는 출력 형태 입니다. %o는 8진수 %x는 16진수의 정수를 출력하는 걸 볼 수 있습니다.
10진수와 8진수 그리고 16진수의 차이는 단순한 표현 방식의 차이라는 것만 알면 됩니다. 컴퓨터에서는 2진수
뿐만 아니라 16진수도 꽤 많이 쓰이기 때문에 익숙해 지시면 편할거에요~
그리고 이렇게 표현방식이 달라도 결국 컴퓨터에서는 2진수로 변환시켜 저장하기 때문에 연산하는데에도 지장이 없습니다.ㅋ
'C Programming' 카테고리의 다른 글
c언어의 연산자(2) (0) | 2016.02.19 |
---|---|
c언어의 연산자(1) (0) | 2016.02.18 |
변수선언과 입출력 (0) | 2016.02.17 |
Hello World! (0) | 2016.02.16 |
c언어의 연산자(2)
이번 글에서는 관계 연산자와 논리 연산자에 대해서 알아보도록 하겠습니다.
관계 연산자 : a와 b가 있을 때 a와 b중에 누가 큰지 작은지 또는 같은지 그 관계를 비교해주는 연산자입니다.
( <, >, ==, !=, <=, >=)
연산 | 연산자의 의미 |
< : a < b | a가 b보다 작은가? |
> : a > b | a가 b보다 큰가? |
== : a == b | a와 b가 같은가? |
!= : a != b | a와 b가 같지 않은가? |
<= : a <= b | a가 b보다 작거나 같은가? |
>= : a >= b | a가 b보다 크거나 같은가? |
C언어에서는 조건이 만족하면 1(true) 만족하지 못하면 0(false)를 출력하게됩니다.
이렇게 조건에 만족하게 되면 1 거짓이면 0을 출력하는걸 볼수있어요~
이걸 언제쓰는지에 대해서는 나중에 반복문과 조건문에서 자세히 보도록 해봅시다.
다음은 논리연산자입니다.
논리연산자 : and, or, not을 표현하기 위한 연산자입니다.
연산자 | 연산자의 의미 |
&& | 모두 참이면 1(true)를 표시 |
|| | 하나라도 참이면 1(true)를 표시 |
! | 1(true)면 0(false)를 0(false)면 1(true)를 표시 |
첫 번째 출력문을 보면 value1값이 10과 같고 value2의 값도 20과 같으므로 둘다 참이 되서 1(true)가 출력되게 됩니다!
두 번째 출력문에서는 value1이 10보다 작진 않으므로 거짓이지만 뒤의 value2 >= 20은 true이므로 둘 중 하나가 true가 되서 1이 출력되게 됩니다.
세 번째 출력문은 value1 > 10이 거짓이지만 앞에 !(not)이 붙어서 true로 바뀌어 1이 출력되는 걸 볼 수 있습니다.
여기서 || 이기호가 어디에 있는지 모르는 분들이 계실겁니다. 처음 배우는 사람들은 소문자 L이나 대문자 I로 많이들 생각하시는데요.
OR기호(||) 소문자L(ll) 대문자I (II) 같아보이지만 다릅니다. 그럼 OR기호는 키보드 어디에있을까요?
자신이 컴퓨터를 사용하면서 한번도 사용하지 않았던 기호를 찾아보세요......네 그거에요. 그거
\표시 위에 달려있는 : 이모양의 기호가 || 입니다.
다음포스팅에는 진법과 bit연산에 대해 알아보도록 합시다.
'C Programming' 카테고리의 다른 글
컴퓨터의 데이터 표현방식 (1) | 2016.02.24 |
---|---|
c언어의 연산자(1) (0) | 2016.02.18 |
변수선언과 입출력 (0) | 2016.02.17 |
Hello World! (0) | 2016.02.16 |
c언어의 연산자(1)
바로 앞 포스팅에서 변수 선언, 입력, 출력을 배웠는데요. 이번 포스팅은 변수를 선언하고 값을 입력한 후에 그 값들을 가지고 연산을 하는 시간을 갖도록 하겠습니다.
소스코드부터 던져놓고 시작하겠습니다.
많이 보던 기호들이죠? +,-,*,/ 그리고 조금 생소한 %기호까지 있는데요 이 연산자들을 산술연산자라고 합니다.
앞의 4개는 잘 아실테니 마지막 기호인 %를 조금 설명하자면 '/'연산자가 나누기의 '몫'을 표시한다면 %연산자는 몫이 아닌 '나머지'를 출력해주는 연산입니다.
출력결과를 보시면
이렇게 나와요~
5를 3으로 나누면 몫이 1이고 나머지가 2이기 때문에 저런 결과가 나오는데요.
여기서 매의 눈을 가진 분들이라면 분명 마지막 printf()함수에 %기호를 2개를 썼는데 1개밖에 나오지 않습니까? 라는 의문이 들꺼에요 printf()함수내에서 %는 특수기호입니다 %뒤에 나오는 문자에 따라 출력형태를 결정하게되는 구조입니다. %d도 %뒤에 d라는 문자가붙어서 정수라는 출력형태를 결정한거구요~
그래서 그냥 순수하게 %기호를 출력하고자 할때는 %앞에 %를 붙여서 출력해야됩니다~
다음소개할 연산자는 대입연산자'='입니다.
대입연산자는 말그대로 대입해주는 연산자입니다
왼쪽에 있는 변수에 오른쪽에 있는 연산값을 넣어주는 것입니다
소스코드와 화면만 보셔도 아시겠죠?ㅎㅎ
그리고 대입연산자와 산술연산자를 합쳐논 연산자가 있습니다. 이건 예제를 들지않고 글로만 보여드릴께요
a = a + b; -> a += b;
a = a - b; -> a -= b;
a = a * b; -> a *= b;
a = a / b; -> a /= b;
a = a % b; -> a %= b;
왼쪽과 오른쪽 연산이 같은 결과물을 나타냅니다. 오른쪽은 그냥 줄임말?이라고 생각하시면되요. 본인이 편한 연산자를 쓰면 됩니다!
실제로 같은지 의심이 되시는분은 직접 코딩해보시기 바랍니다ㅋㅋ
다음은 증가, 감소연산자입니다.
value1++과 ++value2 그리괴 value1--과 --value2가 보이시나요?
value1++은 션 연산 후 증가
++value2는 선 증가 후 연산
value1--은 션 연산 후 감소
--value2는 선 감소 후 연산
이라고 합니다.
무슨뜻인지는 아래의 출력결과를 보면서 이야기해봅시다~
value1과 value2는 먼저 10이라는 값으로 시작을 했습니다.
첫번째 value1++은 선연산(여기서 연산은 출력!)후 증가를 하기 때문에 기존의 값인 10이 출력된 후 11로 변하게 됩니다.
두번째 printf()함수를보면 증가된 11이 출력되는 것을 보실 수 있어요~
++value2는 이제 무슨 뜻인지 감이 잡히시나요? value1++과는 다르게 먼저 증가 시켜준 후 출력해 줍니다. 그래서 첫 번째와 두번째 printf()에서 같은 출력결과가 나타나게 되죠
감소 연산자도 증가연산자와 마찬가지이므로 설명은 생략하겠습니다 ㅎㅎ
이걸로 이번 포스팅을 끝내겠는데요 그렇다고 아직 연산자가 다끝난게 아니에요 ㅠㅠ 아직 많이 남았습니다.
아직 많이 남은 연산자는 다음 포스팅에 올릴께요~~
'C Programming' 카테고리의 다른 글
컴퓨터의 데이터 표현방식 (1) | 2016.02.24 |
---|---|
c언어의 연산자(2) (0) | 2016.02.19 |
변수선언과 입출력 (0) | 2016.02.17 |
Hello World! (0) | 2016.02.16 |