c

· c
문제1 > 입력 받은 정수 값의 부호를 바꿔서 출력하는 프로그램을 작성해보자. 예를 들어 -3 입력시, 3 출력, 5 입력시 -5 출력. 단, 반드시 이번 Chapter에서 소개한 비트 연산자를 이용해서 구현해야 한다. 문제1해설 > /* * 제목 : 문제04-4-1 * 쪽수 : p.100 * 수정날짜 : 080523 * 기능 : 비트 연산자 활용해서 정수 값의 부호를 바꿔서 출력하는 프로그램 */ #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int a,b; b = 0; printf("정수 값을 입력하세요 : "); scanf(" %d", &a); b = ~a; b += 1; printf("입력된 정수 : %d\n부호 바꾼 결과 : %d\n", ..
· c
비트 연산자 (>) 1. 비트 연산자 ( num2 num2의 크기만큼 num1의 비트 열이 오른쪽으로 이동한 결과가 반환된다. num1이 양의 정수라면 (MSB가 0이라면) 밀려나는 오른쪽의 비트들은 소멸되고, 왼쪽의 빈 비트들은 0으로 채워진다. num1이 음의 정수라면 (MSB가 1이라면) num1이 양의 정수일때와는 조금 다른 방식이 적용되어야 한다. 마찬가지로 왼쪽의 빈 비트들이 0으로 채워지면 num1이 더 이상 음의 정수가 아니게 되기 때문이다. -16을 비트 연산자(>>2)를 통해서 2칸씩 오른쪽으로 이동시키면 어떤 결과가 만들어질까? 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 // -16(2진수) 이 결과는 CPU에 따..
· c
https://im-not-robot-0.tistory.com/85 [c언어/열혈 c프로그래밍] p.89 문제 04-3 음의 정수 표현하기 1 바이트로 +5 라는 양의 정수를 표현할 때에는 ㅁㅁㅁㅁㅁㅁㅁㅁ 8개의 자리 중 맨 왼쪽 자리가 부호(+,-)를 표현하는 부분이므로 0 0 0 0 0 1 0 1 (+5) 로 표현하고 1 바이트로 -5 라는 음의 정수를 표 im-not-robot-0.tistory.com 위 게시글에서 음의 정수를 2진수로 표현하는 방법에 대해 알아보았다. 2진수로 표현된 음의 정수는 양의 정수와 달리 그 값의 크기를 바로 계산하기 어렵다. 음의 정수의 크기 ( 부호를 뺀 값 )를 구하는 방법은 과연 2의 보수를 거꾸로 행하는 방법밖에 없을까? 1 1 1 1 1 1 1 1 1 1 1 ..
· c
1 바이트로 +5 라는 양의 정수를 표현할 때에는 ㅁㅁㅁㅁㅁㅁㅁㅁ 8개의 자리 중 맨 왼쪽 자리가 부호(+,-)를 표현하는 부분이므로 0 0 0 0 0 1 0 1 (+5) 로 표현하고 1 바이트로 -5 라는 음의 정수를 표현할 때에는 표현된 +5에서 2의 보수법을 적용하여 0 0 0 0 0 1 0 1 (+5) 에서 (1의 보수를 취하고) 1 1 1 1 1 0 1 0 (1을 더한다) 1 1 1 1 1 0 1 1 (-5) 문제1 > 양의 정수 01001111과 00110011은 각각 10진수로 얼마인가? 문제해설1 > 01001111 (2진수) => 64+8+4+2+1 = 79 (10진수) 00110011 (2진수) => 1+2+16+32 = 51 (10진수) 문제2 > 음의 정수 10101001 과 111..
· c
문제1 > 1비트로 표현할 수 있는 데이터의 수는 0과 1 이렇게 두 개이다. 그리고 2비트가 표현할 수 있는 데이터의 수는 00, 01, 10, 11 이렇게 네 개이다. 그렇다면 4비트, 1바이트 그리고 4바이트로 표현할 수 있는 데이터의 수는 몇 개인가? 문제1 해설 > 4비트 : 8개 1바이트 : 2^8개 4바이트 : 2^32개 문제2 > 1바이트 0000001은 10진수로 1이고, 1바이트 00000010은 10진수로 2이다. 그렇다면 다음 바이트들은 각각 10진수로 얼마가 되겠는가 ? 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 문제3 > 문제2에서 얻은 결과를 가지고, 다음..
· c
문제1 > 10진수 8부터 20까지를 2진수와 16진수로 각각 표현해 보자. 참고로 이는 그림 04-2와 04-3을 참조하면 쉽게 해결이 가능한 문제이다. 문제1 해설 > 문제2 > 10진수 5부터 18까지를 8진수로 표현해보자. 8진수는 0부터 7까지 8개의 숫자만 사용하는 진법이라는 점을 이용한다. 10진수 8진수 5 5 6 6 7 7 8 10 9 11 10 12 11 13 12 14 13 15 14 16 15 17 16 20 17 21 18 22 그동안 2진수, 8진수, 16진수를 계산하는 법을 정리하지 않아서 그때그때 찾아봤는데, 한번 정리하니까 깔끔한 것 같다.
· c
시험기간이다.. 수업시간에 배운 자료구조를 다시 복습해봐야겠다. [자료구조]LinearSearch.c 와 BinarySearch.c 의 코드와 시간복잡도 LinearSearch.c 우선 순차탐색 LinearSearch.c 의 핵심코드는 아래와 같다 for (i = 0; i < len; i++) { if (arr[i] == target) return i; } target 값이 배열의 요소로 있다면 배열의 인덱스 값은 반환시켜 주는 것이다. 이때, 시간 복잡도는 최악의 경우(worst case)를 고려하여 짜는데, LinearSearch 의 경우, "데이터의 수가 n개 일때, 최악의 경우에 해당하는 연산횟수는 n이다." 따라서, T(n) = n 이다. BinarySearch.c 우선 이진탐색 BinarySe..
· c
(정리용) 구조체는 java 언어의 클라스랑 비슷한 것 같다. "제대로 배우는 c언어 프로그래밍" 책의 구조체 단원 문제 중 " 학생 성적 처리 " 부분이 있어서 이 부분을 코드로 짜봤다. 이 코드를 짜보면서 구조체 영역에서 "구조체 포인터 배열" 부분을 연습하려고 한다. #define _CRT_SECURE_NO_WARNINGS #include typedef struct st { char hakbun[12];//구조체 학번 char name[10];//이름 int kor, eng, math, tot;//국어,영어,수학,합계 double avg;//평균 }ST; void printinfo1(void); void printinfo2(void); void printinfo3(ST s[],int n); int ..
코딩신생아(0o0)
'c' 카테고리의 글 목록