본문 바로가기

C

(7)
[C,Py|초급] 1부터 1000까지의 합 출력하기 #include int main() { printf("%d", 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100); return 0; } 누구라도 이해할 수 있는 간단한 코드. 물론 이걸 다 치려면 힘들다. 그래서 파이썬으로 이 소스를 생성..
[CPP] 포인터인자와 레퍼런스인자 함수 생성 asm 비교. 함수의 인자를 레퍼런스로 주었을 때와 포인터로 주었을 때, 생성되는 asm 코드는 어떻게 다를 지 궁금했다.매우 간단한 함수를 만들고, VS2008 에서 최적화 없이 asm 코드를 생성하여 비교하였다. 1. 소스 f1 은 레퍼런스도 포인터도 사용하지 않은 기본형을 그대로 인자로 준 함수. f2 는 모든 인자를 포인터로 넘긴 것, f3 은 레퍼런스로 인자를 넘긴 것이다. f2, f3 이 asm 으로 어떻게 해석되어 생성될 지 궁금했는데, 왼쪽이 f2 의 호출부분 (==== 바 위쪽) 과 f2 의 몸체. 오른쪽이 f3 의 호출부분과 몸체이다. asm 을 소스와 함께 생성했기 때문에, 비교하기 편리하고, 잘 살펴보면, 노랗게 다르다고 표시된 부분은 모두 원 소스 부분 뿐이다. 생성된 asm 코드 자체는 (호출..
비트 인버트는 선형적인가? int main() { unsigned short i; unsigned short inv; unsigned short ineg; for(i = 0 ; i < 0xFFFF; i++) { inv = ~i; ineg = 0xFFFF - i; if(inv != ineg) { printf("For %d, ~i (%d) != 0xFFFF - i (%d)\n", i, inv, ineg); } } return 0; } 지금 생각하면 너무 당연하게 둘이 같아야 하는데, 잠결에 이게 아닐 것 같아서 일찍 출근했다. i가 선형적으로 변할 때, 그 인버트된 값도 선형적이다.
[C|초급] 큰숫자에 작은숫자가 몇 번 나오나 #include int main() // int main() { // { int n, m, cnt=0; // int n, m, 카운터=0; // scanf("%d %d", &n, &m); // (m, n)에입력숫자를저장하라; // while(m > 0) // (m > 0)한동안 { // { if(n == m%100) // 만약(n 이 m의 마지막두자리와 같다)면 cnt++; // 카운터++; m/=10; // m의 마지막자리수를 날린다; } // } printf("%d", cnt); // printf("%d", cnt); // return 0; // return 0; } // } 문제는 The Numbers Write a program to report the number of times a number..
[C,Py|초급] 1000 부터 1까지 5의 배수 출력하기 #include int main() { printf("1000 995 990 985 980 975 970 965 960 955 950 945 940 935 930 925 920 915 910 905 900 895 890 885 880 875 870 865 860 855 850 845 840 835 830 825 820 815 810 805 800 795 790 785 780 775 770 765 760 755 750 745 740 735 730 725 720 715 710 705 700 695 690 685 680 675 670 665 660 655 650 645 640 635 630 625 620 615 610 605 600 595 590 585 580 575 570 565 560 555 550 545..
[C|MFC|수치해석] 라그랑지 다항식 라그랑지 다항식. 주어진 n 개의 점들을 지나는 n-1차 다항식을 구하는 것. 공식은 위키백과 영문판을 참고했다. #include #include typedef struct _data { double x; double y; } DATA; double l(DATA *dataList, int nData, int j, double x) { double prod = 1; for(int i=0; i
[C|MFC] 푸리에 시리즈 사각파 사각파 푸리에 시리즈 python 버전은 : https://daewonyoon.tistory.com/258 조금 지져분한 콘솔버전 /* By 숙제도둑 */ #include #define PI 3.1415927 /* * 1 * F (t) = ------- sin ( (2n+1) t ) * n 2n + 1 * */ double f(int n, double t) { return sin((2*n+1)*t)/(2*n+1); } /* * * k * X (t) = Sigma F (t) * k n = 1 n * */ double X(int k, double t) { int n; double sum = 0.0; for(n=0; n