목록Development/C & C++ (45)
컴공생의 다이어리
2-layer channel coding Encoder(인코더) Code - Encoder의 입력은 16bit, 출력은 42bit의 codeword // 2-layer Channel Coding Encoder #include #include int main() { char input[17] = { 0 }; int input_shift[24] = { 0, }; int g[9] = { 1,0,0,0,0,0,1,1,1 }; char temp[25] = { 0 }; printf("--------- 2-layer Channel Coding Encoder ---------\n"); printf("Input: "); scanf("%s",input); ///////////////////// crc-8 encoder /..
(7,4)Hamming Code Encoder(인코더) Code - Encoder의 입력은 4bit, 출력은 7bit의 codeword // (7,4) Hamming code Encoder #include #include int main() { char input[5] = { 0 }; int s[4] = { 0, }; int t[7] = { 0, }; int G_T[7][4] = { {1,0,0,0},{0,1,0,0},{0,0,1,0}, {0,0,0,1},{1,1,1,0},{0,1,1,1},{1,0,1,1} }; char result[8] = { 0 }; printf("--------- (7,4)Hamming Code Encoder ---------\n"); printf("Input: "); scanf(..
CRC(cyclic redundancy check)란? CRC는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다. 우리 말로는 순환 중복 검사라고 한다. 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC 값을 계산하게 된다. 이어서 두 값을 비교하고, 이 두 값이 다르면 데이터 전송 과정에서 잡음 등에 의해 오류가 덧붙여 전송된 것 임을 알 수 있다. CRC Encoder(인코더) Code - Encoder의 입력은 16bit, 출력은 24bit - divisior G = X8 + X2 + X + 1 // CRC-8 Encoder ..
Ubuntu에서 c와 c++ Makefile 만들기 test1.c와 test2.cpp가 아래와 같이 있다고 가정한다! //test1.c #include int main(){ printf("test1 HELLO~!\n"); return 0; } //test2.cpp #include using namespace std; int main(){ cout
문제 0에서 64사이의 값 범위에서 랜덤하게 생성된 값을 사용하여 9x3 행렬을 만들어 출력하고 이 행렬의 행과 열을 서로 맞바꾼 행렬인 전치 행렬을 출력하는 프로그램을 작성하시오. 코드 #include #include #include using namespace std; int main(){ int a[9][3]; //a[column][row] srand((unsigned int)time(NULL)); cout
연산자 우선순위(Operator Priority) result = 5 + 2 * 8 / 4 - 8; 수학에서 위의 result 값을 구하기 위해서는 곱셈과 나눈셈의 연산이 덧셈과 뺄셈보다 먼저 계산되어야 한다. c/c++에서도 곱셈과 나눈셈의 연산이 덧셈과 뺄셈보다 먼저 처리 된다. c/c++에서는 사칙 연산 말고도 많은 연산자가 있기 때문에 여러 개의 연산자가 일렬로 나열되어 있을 때, 어떤 연산자를 먼저 처리할지의 순서가 정해져 있는데 이것을 연산자 우선순위라고 한다. result를 구하기 위해서 가장 우선순위가 높은 연산자는 곱셈 연산자(*)와 나눗셈 연산자(/)이고 그 다음으로 우선순위가 높은 연산자는 덧셈 연산자(+)와 뺄셈 연산자(-)이며 이 중에서 가장 우선순위가 낮은 연산자는 대입 연산자(..
정수형 데이터 입력 #include int main(){ int a; scanf("%d",&a);#입력 받는 부분 printf("%d",a); return 0; } 실수형 데이터 입력 #include int main(){ double a; scanf("%lf",&a);#입력 받는 부분 printf("%lf",a); printf("%.2lf",a);#소수점 둘째 자리(셋째 자리에서 반올림)까지 출력 return 0; } 문자형 데이터 입력 #include int main(){ char a; scanf("%c",&a);#입력 받는 부분 printf("%c",a); return 0; } 아래 코드는 문자를 입력받고 %c로 출력하면 입력한 문자가, %d로 출력하면 아스키코드 값이 출력된다. #include in..
문제 다음 기준을 충족하는 강력한 패스워드를 생성하는 프로그램을 작성하시오. 길이는 최소한 6이상이어야 함 최소한 1개 이상의 숫자가 있어야 함 최소한 1개 이상의 영어 대문자가 있어야 함 최소한 1개 이상의 영어 소문자가 있어야 함 최소한 1개 이상의 특수문자가 있어야 함 특수문자 : !@#$%^&*()-+ 코드 #include #include #include using namespace std; string WARNINGS[] ={ "길이는 최소한 6이상이어야 합니다.", "최소한 1개 이상의 숫자가 있어야 합니다.", "최소한 1개 이상의 영어 소문자가 있어야 합니다.", "최소한 1개 이상의 영어 대문자가 있어야 합니다.", "최소한 1개 이상의 특수 문자가 있어야 합니다." }; int main..
문제 시간이 숫자로 주어지면 텍스트로 변환하는 프로그램을 작성하시오. 분이 0이면 o'clock을 사용한다. 1분부터 30분까지는 past를 사용하고 31분부터 59분까지는 to를 사용한다. 코드 #include #include using namespace std; void timeInWords(string s[]){ //s[1]~s[20] = 1~20, s[21]~s[29] = 21~29, s[30]=30 s[1] = "one";s[2] = "two"; s[3] = "three";s[4] = "four"; s[5] = "five";s[6] = "six"; s[7] = "seven";s[8] = "eight"; s[9] = "nine";s[10] = "ten"; s[11] = "eleven";s[12] ..
문제 두 지점 A와 B의 위치 정보와 A와 B의 각 지점에서 지점 C까지의 거리가 주어지면 지점 C가 위치 할 수있는 좌표의 수를 계산한다. 위치 정보는 좌표로 표시된다. A와 B의 좌표가 (x1, y1), (x2, y2)이면 A에서 C까지의 거리가 d1이고 B에서 C까지의 거리가 d2이면 x1, y1, d1, x2 , y2, d2의 입력의 형식은 다음과 같다. 첫 번째 줄에 테스트 할 횟수를 입력한다. 다음 줄부터 위에 기록 된만큼 테스트 케이스를 작성한다. C가 위치 할 수있는 좌표가 무한대이면 출력은 1이다. 코드 #include #include using namespace std; typedef struct{ int x; //x = x cordiante int y; //y = y cordiante..