본문 바로가기

2014 C/3월

2014.03.07

양수일 경우 unsignd(부호)를 앞에 붙여야함

 

unsignd int - 정수형 양수

unsignd short int - 2byte 정수형 양수 (unsignd short로 줄여쓴다.)

long int

unsignd  character - 1byte 차환형 (문자를 주로 넣는다.)











 

char - 1byte

short - 2byte

int - 4byte

long - 8byte

 

char <= short <= int <= long - (최악의 경우 전부 1byte일 수도 있다.) 컴파일러마다 용량이 모두 다름.

하지만 char, short, int 의 경우 보편적으로 사용하는 용량이 같다.






 

 



* 보수




- 부호비트의 숫자가 0일 경우 양수 1일 경우 음수로 정한다.


* -127~-0, +0~+127 의 값을 가진다.

+11 일 경우 0000 1011 = 11

-11 일 경우 구하기가 어렵다. 그래서 나온 것이 2의 보수 법 (255 254 … 247 246 245 = -11)


10진수에는 9의 보수와 10의 보수의 개념이 존재


* 9에 대한 9의 보수


   2

+  
───

  9


일 때 79의 보수 값이 된다.

9의 보수 값에서 +1을 하면 10의 보수 값이 나온다.



 2의 보수 법도 같은 방식.


*1의 보수

1 0 1 0 1 0 1 0

□□□□□□□

───────

1 1 1 1 1 1 1 1


일 때에 1의 보수 값은 0101 0101이다.


2의 보수를 구할 때 여기서 +1 해준다. 그러면 0101 01012의 보수 값은 0101 0110이다.


0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1

───────

0 1 0 1 0 1 1 0
















증가

++inum; 전치연산

inum++; 후치연산






11번째줄의 ival = inum++; 을 13번째 줄에 출력했을때에 값이 증가 되지 않았는데, 이것은

11번째 줄을 풀어서 쓰면

ival = inum;

inum++;

이렇게 써지기 때문에 밑의 값은 실행 되지 않는다.

그래서 값의 증가x

ival = ++inum; 은 풀어서 쓰면

++inum;

ival = inum;

이기 때문에 값이 증가한다. 






참과 거짓









여기서 ! 은 반대기호 7!=6 은 7은 6과 같지 않다. 라는뜻


결과






6>5는 참이기에 1이 (6이 5보다 같다면 참이다.)

6>7은 거짓이기에 0이 ( 6이 7보다 크다면 참이다.)

7==6은 거짓이기에 0이 출력된다. ( 7과 6이 같다면 참이다.)

!3은 거짓이기에 0이 출력된다. ( 3이 아니면 참이다.)

7!=6은 참이기에 1이 출력된다. ( 7이 6과 같지 않다면 참이다.)

7<=7은 참이기에 1이 출력된다. (7이 7보다 같거나 작다면 참이다.)

7||6은 참이기에 1이 출력된다. ( 7과 6중 하나라도 참이라면 참이다.)

6&&7은 참이기에 1이 출력된다. ( 6과 7 둘다 참이어야 참이다.)


24번째줄과 25번째줄의 유의해야한다.

25번째 줄에서 7||(++inum9); 로 inum9를 증가시켰는데 35번째 줄에서 출력하였을때

101이 아닌 100이 출력된다.

이것은 25번째 줄 7||(+inum9)의 ||(or회로)때문인데 or회로는 둘중 하나만 참이라도 참의 값을 출력하기 때문에

앞의 값이 참이면 뒤의 값을 아예 처리를 하지 않게된다. (버리게 된다.)

그래서 (++inum9)는 아예 실행자체를 안한셈인것이다.




--

test

--



이번에는 inumtest2의 첫번째 값을 거짓으로 두고 (++inumtest)를 실행하는지 실험해 본 것이다.


or회로가 첫번째 값(0)이 거짓이었기때문에 두번째값(++inumtest)의 참,거짓을 알아보기위해 실행하였기 때문에

inumtest의 값은 100 에서 증가된 값을 출력하였다.


--

test end

--






AND회로

A

B

C



OR회로

A

B

C








'2014 C > 3월' 카테고리의 다른 글

[C언어]8진수,16진수의 표현  (0) 2014.03.12
[C언어]scanf 입력함수  (0) 2014.03.12
2014.03.06  (0) 2014.03.06
2014.03.04  (0) 2014.03.04
2014.03.03  (0) 2014.03.03