달력

52024  이전 다음

  • 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

0314 반복문,초기식,조건식,반복식,조건문,for,if else
삼항연산자 : 잘 안쓰며, 쓰라는 권유도 안 함. 다만 해석정도만 할 줄 알면 됌.
반드시 쓸 필요는 없으나..그게 코드상 짧을 때는 써도 뭐.

 

초기식
for (초기식,초기식,, ; 조건(하나만 쓸 수 있음!) ; 반복식,,,)
{
반복식
}

아래 반복문은 결과가 전부 같게 됌

무한루프 탈출방법
ctrl+c,ctrl+brk

조건문 최적화 : 걸릴 확률 높은 걸 첫순위 if 로.

 

#include<stdio.h>

int main()

 /*
 int inum1,inum2;
 inum2=0;
 for (inum1=0;inum1<5;inum1=inum1+1)
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
 inum2=inum2+2;
 printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
 */

 /*
 for (inum1=0,inum2=0;inum1<5;inum1=inum1+1,inum2=inum2+2)
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
  */

 /*
 inum1=0;
 inum2=0;
 while (inum1<5)
 {
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
  inum2=inum2+2;
  inum1=inum1+1;
 }
 */

 /*
 inum1=0;
 inum2=0;
 for (;inum1<5;)
 {
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
  inum2=inum2+2;
  inum1=inum1+1;
 }
 */


 /*
 inum2=0;
 for (inum1=0;inum1<5;inum1=inum1+1)
 {
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
  inum2=inum2+2;
 }
 */

 /*
  for (inum1=0,inum2=0;inum1<5;inum1=inum1+1,inum2=inum2+2)
 {
  printf("inum1 : %d, inum2 : %d \n",inum1,inum2);
 }
 */

 return 0;
}

Posted by C언어 보이
|


0312 폰트, 화면주사방식, 아스키코드, 형변환


나의 출석번호 18

윈도우용 출석번호 +10

리눅스용 출석번호 +40

cmd ftp 접근하는 방법 : ftp 192.168.10.100

user 

password 

1.bin

2.mget *.hwp

3.get main.c

인제부터 보이는 건 전부 리눅스명령어

도스에서 연 ftp끊을 땐 quit


lf : long float 즉 double


폰트. 문자란 존재하지 않는다. 다만 문자처럼 출력하는 픽셀점멸정보에 관한 이진수가 있을 뿐.

alt+숫자 -> 숫자에 해당되는 아스키코드 문자 출력

화면출력방식 픽셀들의 점멸을 이진수로. 따라서..아스키코드에서는 A에 해당하는 2진수에 대하여 


순서버호 65가 부여되어 있음.

화면주사방식 ntsc

             pal

영문푼트(문자출력 이진수?)가 들어있는 곳이 BIOS. basic input output system.  

따라서..우리가 키보드에 a를 치면 컴터안에 a에 해당하는 폰트수?가 입력됌.

'a' : ' '안의 문자에 해당되는 아스키코드 숫자

ascii : america standard code information interchange 미국 표준 코드 정보 교환


아스키코드는..초기에 0~127. 즉 128가지인 7비트만 필요.

하지만..어차피 8비트 단위로 쓰므로..확장 아스키코드가 나옴 (다른 나라 언어 포함하는).

한글폰트들의 분류. 조합형과 완성형


도스영문형 : chcp 437

도스한글형 : chcp 949


아스키코드(8비트)를 저장하기 위해 제일 접합한 자료형은 char (1바이트). char은 정수형 자료형.

참고로..처리속도는 32비트 컴터에서는 32비트(4바이트) 크기인 int가 좋음. 이유는, 안 쓰는 버스


들은 죽이는 신호를 보내야 함으로.

        용량최적화에서는 char임.


/t : 가로(오리엔탈) 텝


int형 변수 값을 char형 변수에 넣을 때 : 하향식 형변환. down casting

부호단위로 넣으며..끝에서 부터 넣는다. 따라서..크기가 다르면 상위바이트의 손실 발생.


반면..int형 변수 값을 float형 변수에 넣을 때. 혹은 소+대 : 상향식 형변환. up casting

정수.0 으로 그대로 들어감. 형동등의 원칙 (자료형이 큰 쪽으로. 상향식 형변환) 

              : 정수형<실수형. 1+1.4=2.4실수형으로.

      1바이트형(->4바이트형으로)+4바이트형


() 형변환 연산자 = (double)num1/num2; ()부터 먼저 처리.

printf(":%3.2f:",11.56789); 3필드폭 지정, 소수점.이후부터는 2자리까지 반올림 표현.

Posted by C언어 보이
|

0311
cpu에 더하는 회로를 alu 라 함.
cpu 3대 구성요소 : 사람이 직접 alu나 cu를 건들이기 힘들고..register를 건들여 register제어기능 사용하여 cpu 동작시킴.
 - alu (arithmatic and logic unit : 산술논리연산 회로. 사칙연산 등. alu 안에 덧셈기 있음)
 - cu (control unit : 외부장치제어 회로.)
 - register : 두가지 개념. 1기능만 있는 레지스터도 있고, 1과 2의 기능을 갖고 있는 레지스터도 있음.
   - 1. cpu 안에 있는 메모리 : cpu와 동급으로 동작하나 가격이 아주 비쌈. 플립플롭(1비트를 기억시키는 회로).
                               연산을 하기 위해 메모리에 있는 변수값을 cpu에 보관하는 장소.
                               레지스터와 메모리 사에에 캐시메모리가 있고 성능은 양자의 중간정도.
   - 2. cu의 성질. 제어.
   * 변수가 저장되는 공간은 레지스터가 아니라 메모리 영역.
&& : inum1전체를 통째로 보아 값을 참조.
&  : 위와 다른 회로 동작. 각 비트를 and 시킴. 비트연산자.
     and 게이트로 inum1와 inum2의 각 비트를 모두 검사, 자리수마다 and 게이트 동작.
inum3=inum1&&inum2; 에서.. 일의 순서는 프로그램 카운터에서 기억?? 메모리 주소 레지스터??
                    ..inum1거짓일 때 &&이후 생략되는 것은 어느 레지스터에서 판단??
틸드 : ~ 비트단위 not 연산자.

#include<stdio.h>
int main()

int inum1,inum2,inum3;
inum1=0xfffffff0;   // 11...0000 : 4바이트 다 쓰고 있음
//inum2=0x4;
inum3=~inum1;
printf("%x %x",inum1,inum3);

return 0;
}

단항연산자 네 가지. |(or) &(and) ~(not) ^(xor)
시프트연산자 >>   요즘은 *4로 해도 컴터가 쉬프트연산자 자동으로 해 줌.


#include<stdio.h>
int main()

int inum1,inum2,inum3;
inum1=0x18;      // 11...0000 : 4바이트 다 쓰고 있음
inum2=inum1>>2;  // 0011
inum3=inum2>>3;  // 0001  나머지 1은 짤려나감
printf("%x %x %x \n",inum1,inum2,inum3);
inum3=inum3<<3;  //1000
printf("%x\n",inum3);

return 0;
}

상수는 메모리에 저장된 값이 아니라..
CPU 연산조건 임??
L value : 변수. 메모리 공간. 변수명은 사실..숫자형 주소명을 문자로 표현해 놓은 것임.
R value : 변수나 상수. 상수가 저장된 공간은? 아님 cpu 연산상태?
변수, 키워드(변수명
으로 사용불가), 키워드처럼 쓰이는 main (엔트리포인트),
상수.

윈도우, 프로그램 설치. 컴터 환경셋팅은 본인이 할 줄 알아야.
vmi로 메모리 할당해서 xp 설치해보면 좋음.
아웃룩 pop3. ip 설정.

const : 변수용 문자를 상수용으로 씀.
sizeof 함수가 아닌 연산자!! sizeof num 가능하나 편의상 혹은 우선순위 때문에 sizeof(num).
sizeof(num1+num2)도..num1 자료형의 크기.

Posted by C언어 보이
|

0307
c 표준.
char=<short=<int=<long
=> 다 같아도 어긴 건 아님..

0을 +로 하는 이유:전기절약,연산속도?
자료형을..반바이트(4비트)만 사용가능??

우리 수업 코딩 시 선언과 동시에 초기화 하지 말 것. 지저분.
선언 시..메모리 할당만
변수명 지정 팁 : cAge (자료형 변수의미).
변수명에..알파벳,숫자,언더바(유일한 특수기호). 숫자 앞에 오는 건 안 됌.
a=7/3 몫이 들어감
b=7%3 나머지가 들어감

iva=inum++; 후치. 대입 후, inum 증가. 대입없이 단독 증가연산은 선치, 후치 차이 없음.
            선치는 선증가 후대입.

inum2=100;
inum1=7||(inum2++);  || (inum2++) 이 부분은 조건검사도, 실행도 하지 않음 (효율적으로 하고자 회로설계를 이렇게 함).

'C언어 업무보고' 카테고리의 다른 글

0311 연산자  (0) 2014.03.11
140310 소수점 float, double  (0) 2014.03.10
0306 변수,라인피드,프린트  (0) 2014.03.07
0305 업무보고 리눅스 파일생성  (0) 2014.03.06
0304 업무일지 전처리,컴파일  (0) 2014.03.04
Posted by C언어 보이
|

0306

printf:print function 프린트 함수

printf("hi\n");

\n : 라인피드(줄바꿈)와 캐리지 리턴(커서가 맨 앞에)기능이 모두 실행됌.

윈도에서 만든 코드를 리눅스에서 보면 ^M이라 표시됌. 텍스트 표시상 호환이 안 돼서 그럼. 500줄 이상의 코드 외에는..실행상 문제 


없음.


컴퍼일하면 리눅스, 윈도에서 다르게 동작할 때가 있음.

이는 리눅스냐 윈도우냐가 문제가 아니라 그 안에 있는 컴파일러(gcc vs VS)의 차이 때문.

리눅스 컴파일명령어는 gcc. cc입력해도 gcc로 알아서 바꿔줌.

유닉스에 있는 컴파일러에는 cc (gnu가 개입안했으므로).



주석은 전처리과정에서 사라져서 어셈블리파일에는 포함되지 않음.

주석이랑 전처리지시자# 모두..c문법이 아니므로 ;이 없다.


진수관련

13 = 8 + 4*0 + 2 + 1 = 1011

hexa decimal 6+10. 16진수. x로 많이 씀

D 10진수

O. Octabal. 8진수

B. Binary. 2진수


printf("%d\n",1234);

% : 형식지정자

d : decimal 10진수

o,x(X로도 표기가능. 나머지는 대문자로 불가).  b는 안 됌


계산회로책 (논리회로, 계산회로 만듬)


변수의 메모리상 존재위치, 인식방법

질> 주파수. 한 클락이 변경시키는 전자소자 상태와 방식

number1=number2 과정

num2->cpu->num1

질> 모니터와 버스로 연결된 부위. cpu(연산결과, 상수출력), memory(변수값 출력). 

Posted by C언어 보이
|


cl /P main.c -> .i 파일 생성

cl /Fa main.c -> .asm 파일생성

cl main.c -> .exe 파일 및 .obj 파일생성


기계어는 2(bin)진수이나 화면표시의 편리상 16진수로 보여줌(hexa view)


작성->.c 전처리(에러)->.i  컴파일(에러)->.asm 어셈블러->.obj 링크(에러)->.exe 실행->런타임 에러

                  C           assembly       기계어  

리눅슨는..gcc () -o                      .s             .o


윈도우 실행기준 1. 현재위치 기준으로.. 1)이름만 2) 이름.exe

                2. path에 등록된 경로위치에서...

유닉스가 직접X.. gcc가 .c를 보고 실행파일인지 여부 결정. .c면 실행

                 경로는.. 윈도처럼 현재위치가 항상 기준은 아님. ./를 명시해야..다른폴더 파일을 지우거나 실행할 위험이 없음.


-r/rwx/---/---

/소유주/그룹/기타

업무일지 방식 : [smart]이름-날짜(-과제명)

도스창에서 notepad main.c


#include<stdio.h> //전처리 영역으로서 C가 아님. .c->.asm 이전에.. .c->.i 하는 부분. 이 한줄이 .i 오천줄 정도.

 //#은 다 전처리 영역. stdio.h 안에 또 다른게..include 됨...

                  //이렇게 다 include 하면...   .i 파일로 만들어 짐.

                  //헤더파일들은.. C:\Program Files\Microsoft Visual Studio 10.0\VC\include에 있음.


int main(void)    //C

{

printf("Hello world! \n");

return 0;

}

<> include 폴더 안에서 stdio.h 파일을 찾으라는 말임.

include 폴더 경로도 설정가능.

리눅스창에서.. 아디->usr->include->ls -al stdio.h


main 엔트리포인트 즉 진입점. (윈도우에서는 winmain)

return 함수실행전의 상태로 돌아오라 (즉, 함수 종료).

return 뒤에 뭐 적으면 그냥 종료 됌.

0은.. 일할 때 문제없으면 0을 넘기라.고 C표준에 정의 됌.

질> 엔트리포인트 두 개 이상 가능?



Posted by C언어 보이
|

cd -> 로그인시 폴더로 이동

ln -s  /mnt/hgfs/One/oyj cwork 바로가기 생성


종단 컴----종단 컴. terminal. zterm.

기계어->assembly->bctl/b->c->c++

컴파일러 : 윈도 : visual studio 유료 (집에서만 쓰지 않고 만든 걸 상용판매나 인터넷 공유면 전


화옴. 잡히면..원래 가격의 열배)

           리눅스 : gcc (gnu c compiler) 무료

작성->.c 전처리->.i  컴파일->.asm 어셈블러->.obj 링크->.exe

                  C           assembly       기계어  

시스템속성->고급->환경변수->admin 변수->path

mspdb100.dll

cl /? 컴파일 옵션 설명

윈도우 도스창에서 cl main.c가 컴파일 안 될 때..필요 라이브러리명이 없다는 메시지가 뜨는 데..

(그 라이브러리명 주소+;)를 환경변수의 lib 변수의 변수값에 넣으면..실행 됨.


cl main.c -> .exe 파일 및 .obj 파일생성

cl /Fa main.c -> 어셈블리 파일생성

Posted by C언어 보이
|

리눅스/vi
분리자
 - 한글계통 프로그램 \
 - 영문쪽 /
vi .vimrc (vimrc내용을 참조하라는 말)

set number : 숫자나옴
확장명령어 모드 : wq : write 후 quit

      1 기본적인 환경설정
      2 set nu
      3 set ts=4  들여쓰기
      4 set shiftwidth=4 
      5 set cindent
      6 set nowrap
      7 set ai
      8 set aw

리눅스 종료명령 ctrl+d (윈도 엑스버튼 사용은 나쁜 버릇)
gcc -o main main.c (출력할 이름을 main으로 해라는 뜻)
gcc : gnu c compiler
-o : output (출력)
main : 실행파일로 할 이름
main.c : 내가 작성한 파일 (따라서 내가 작성한 파일명은 외우고 있어야 함)
./main에서 ./은 현재위치

- 앞으로 아래내용 항상 띄워놓기
      1 \include <stdio.h>
      2
      3 int main()
      4 {
      5         printf("good 음냐\n");
      6
      7         return 0;
      8 }
      9
     10

비쥬얼 스튜디오 명령 프롬프트
실행창 우클릭메뉴 '표시'누르고 경로 드래그, 우클릭.
비쥬얼 스튜디오 명령 프롬프트에서.. cd 우클릭메뉴 붙혀넣기 클릭
main.exe exe는 execute 실행파일

HDD드라이브명이 C인 이유. 옛날 컴 a,b는 FDD..c가 HDD. 영문자 c와의 구별을 위해 c:
d드라이브는 ODD (optical disk drive)

도스창에서 chcp 437 -> 영문모드로. 현재모드를 437 모드로.
           chcp 949 -> 한글모드로.
           .은 현재위치를 말함.
    ..현재위치 기준으로 상위 디렉토리
           \ 뿌리 디렉토리

절대경로
상대경로

리눅스명령어 cp a.c d.c(a.c를 카피하여 d.c생성). 이 명령의 풀은.. cp ./a.c ./d.c
      cp a.c ./a.c == cp a.c a.c  == cp a.c . (셋 다 상대경로) 
             == /mnt/hgfs/One/oyj/a.c
 
상대경로를 이용한 복사 cp a.c ./test1/ : 현재위치의 하위 디렉토리 test1에 a.c를 복사
                       cp a.c ./../    :     "      상위  "      에 a.c를 복사

mv : move. 파일을 이동하거나 이름을 바꾸는데 사용
rmdir smart : remove smart directory
rm a.c : a.c를 삭제
rm -rf smart : smart라는 폴더 강제삭제. - (묻지말고). remove force (강제삭제)


 

'C언어 업무보고' 카테고리의 다른 글

0305 업무보고 리눅스 파일생성  (0) 2014.03.06
0304 업무일지 전처리,컴파일  (0) 2014.03.04
0228 리눅스,명령어,vi  (0) 2014.02.28
0227 리눅스 명령어  (0) 2014.02.27
0226  (0) 2014.02.26
Posted by C언어 보이
|

- 리눅스는 문제없으면 메시지 없음. 문제있어야 메시지.
- pwd : 경로
- 리눅스, 도스 명령어 path, tree : 트리구조로 폴더구조 보여줌
- 윈도우 창에서 우클릭, 명령창열기 : 도스창으로 열림
- 윈도우 우클릭으로 새폴더 만들 때..mkdir 명령어가 자동 입력. 즉 mkdir 명령어가 없으면 새폴더 - 안 만들어짐. 즉..그래픽 유아

이 클릭시 명령어가 자동 입력 됨.
- 드래그 (ctrl c). 우클릭 : ctrl v. 즉, 드래그 상태에서 우클릭 : ctrl c, v.
- 리눅스 암호안보이게 하는 이유 : 암호글자뿐만 아니라 암호길이도 유출안되게 (유닉스도 마찬가지)
- 리눅스식 메모장(visual) 호출 : vi main.c (main.c라는 이름의 visual 생성)
- 쉬프트키, set number
- esc 눌러도 반응없는 상태 : 명령상태 : 키보드를 눌르면..키보드 글자입력(에디트 상태)이 아니라..키보드에 할당된 명령이 수행

됨 (조심해야 함).
-ll (ls-l의 약자)
- rm.파일명.확장자명 : 파일 지움

 

- visual (vi) 명령어
 - 콜론 -> 확장명령 상태 (제일 밑으로 뭐가 생김)
 - 세미콜론 ->
 - i : insert 글자삽입 상태로 됌 : 에디트 상태.
 - esc : 에디트 나 확장명령 상태에서 -> 명령상태로

- 명령상태에서 j, k, h, l : 아래, 위, 좌, 우. 에디트상태에선 j k h l
- 명령상태에서 w (word 칸 이동),dd(잘라내기),dw(한 단어 삭제), d2+윗키+엔터(현재 줄 포함 윗 쪽 2줄 삭제). d+u (언두). 백스페

이스(방향이동), 딜리트키나 x키(한 글자씩 삭제), 대문자 d(현재위치부터 라인끝까지 다 지움),
y(카피), p (위로 붙혀넣기), 대문자p(아래로 붙혀넣기), 대문자 j (밑에 줄을 현재줄과 붙임), r+문자(커서가 있는 한 글자를 입력문

자로 고침)

- 확장 명령상태에서 숫자 엔터 : 원하는 숫자의 행으로 이동
- 확장 명령상태에서 w (write저장), q엔터(도스창으로 나옴), q!엔터(저장않고 강제로 도스로 탈출)

- 해커스접속법 윈도우 실행창에서 : telnet ftz.hackerschool.org
- 해커스쿨 트레이닝2 아디/비번 : trainer2/linuxer
- 해커스쿨 트레이닝3 아디/비번 : trainer3/computer
- 리눅스 ls 에서 보여지는 항목리스트에서.. -rw-rw-r-- 처럼 앞부분에 -가 붙으면 파일, drwxr-xr-x 처럼 d가 붙으면 디렉토리

vi 정상종료 하면.. main.c.swp 스와핑 파일 (vi에서 커서감시) 사라짐.

 

'C언어 업무보고' 카테고리의 다른 글

0304 업무일지 전처리,컴파일  (0) 2014.03.04
0303 리눅스,명령어,절대경로,상대경로  (0) 2014.03.03
0227 리눅스 명령어  (0) 2014.02.27
0226  (0) 2014.02.26
0225 업무보고 보수법  (0) 2014.02.25
Posted by C언어 보이
|

자동차 트랙도는 시간 : 20초


리눅스 명령어 :
- ls -all : 모든 항목 표시
- clear : 화면 클리어
- mnt/hfgs/One : One 이라는 폴더로 위치이동
- mkdir name : name이라는 이름의 폴더 생성

'C언어 업무보고' 카테고리의 다른 글

0304 업무일지 전처리,컴파일  (0) 2014.03.04
0303 리눅스,명령어,절대경로,상대경로  (0) 2014.03.03
0228 리눅스,명령어,vi  (0) 2014.02.28
0226  (0) 2014.02.26
0225 업무보고 보수법  (0) 2014.02.25
Posted by C언어 보이
|