336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

바이너리(binary)는 기본적으로 두 조각, 두 부분을 의미하며, 다음의 의미로도 쓰인다.

  • 바이너리는 0과 1, 두 숫자로만 이루어진 이진법(二進法)을 의미한다.
  • 컴퓨터에서 정보는 이진 형태로 저장되며, 바이너리는 이진 파일을 의미한다.

출처 : 위키백과


라는 사실을 먼저 알고 시작하겠 습니다^^;;


컴퓨터는 일반적으로 0과 1을  고속으로 처리하는 장치입니다 여기까지 이해가 되었다면 당신은 반쯤 성공한 것이지요^^


그렇다면 실제로 물리적으로 어떻게 처리 되는지에 대해서 이야기 해보도록 하겠습니다.


우리가알고 있는 RAM은 한줄로 쭈욱 나열된 공간입니다. 




제 손으로 그린 그림은 설명을 위한 것이니 참조만하세요^^


일단 저렇게 된 것이 메모리 구조입니다.  저렇게 검은 반도체 안에 무수히 많은 공간이 있습니다.


이공간은 전기가 들어와 도체 상체가 되거나 혹은 전기가 빠저나가 부도체 상체가 됩니다. 앞서 말했듯이


컴퓨터는 1과 0밖에 모릅니다. 그렇다면 0과 1을 어떻게 구문 짖게 되냐면 저 무수히 많은 공간에 전기가 들어가면


바로 1이 됩니다. 그리고 전기가 빠저 나가면 부도체 상태가 되고 이것이 바로 0이 되는것이지요.~


여기서 다시 의문점이 생깁니다. 그렇다면 CPU는 전기가 들어왔다 나갔다를 반복적으로 처리하는것인가요?? 하는


의문이 생기겠죠 ~ ;;; 하지만 아니에요 CPU는 단순하게 전기적 파동입니다...;; 너무 멀리왔다... 나중에 CPU에 대해서 디테일하게 설명


하겠습니다 포커스를 다시 램으로 !!!!


그래서 연산이 되거나 연산된 결과를 다시 램으로 이동하게됩니다. 그렇다면 하드 디스크는 왜 존재 할까라는 의문과 함께 예전에 공부한


워드나 머 기타 등등 컴퓨터관련 공부 했던 분들이 생각합니다.. 분명 저장된것은 하드가 많은데 왜 보조 장치 일까 그리고 왜 램은 공간도


작고  휘발성인데 어찌하여 주기억 장치가될가 란 의문이 생기기 마련입니다.


그래서 그 의문을 오늘 시원하게 풀어 보겠습니다. 바로 램을 주로 사용하기 때문입니다.


컴퓨터 연산을 하기 위해서는 데이터는 램에 상주하게됩니다. 이런 데이터를 램과 CPU를 오가며 고속으로 처리 하는것이죠


그렇다면 보조장치가되는 하드는 무엇일까요?? 내 그렇습니다 당장 사용하지 않고 일단 저장하고 연산이 필요하지 않을 때 부족한 램의


공간을 대처하기 위해서 사용되는것입니다. 따라서 보조적 역활을 수행해서 보조 기억 장치가 되는 것입니다.


그런데 어떤분들은 이런 의문을 했을것같아요... 운영체제도 내.. 야동도.. 다 하드있는데 먼가 아닌것같아 라는 의문을 가지시는 분들이 계


실 것같아서 이야기를 더하면 일단 컴퓨터가 전기가 들어와 시동하게 되면 메인보드에 전기가 공급되고 그래픽 카드혹은 그래픽 모듈을


검사하고 각종 시스템을 검사하게됩니다. 검사 절차가 끝나면 바로 하드에 들어 있는 운영체제의 데이터를 램으로 상주 하는 작업을 진행


합니다.(예전에 xp 쓸때 지렁이 한마리 두마리 세마리 이작업이 그작업입니다 ㅎ)


그래서 램에 상주하는 운영체제의 데이터를 토대로 컴퓨터는 각종 작업을 수행하게됩니다.


참 쉽죠?^^;;;


이렇게 공간들속에 더작은 미세한 공간이 있는데 이공간이 바로 자료와 자료를 구분 짖는 벽이됩니다. 이미세한 공간에 전류가 흐르게되면


논리적 절삭이 이뤄 젔다고 합니다. 그래서 우리가 일고있는 자료형 변수 int라든지 char를 구분 짖게됩니다.


그렇다면 int 와 char는 어떻게 공간을 차지 할까요???


아래부분은 집중해서 읽고 이해해야합니다.~


0과 1을 표현하는 공간 하를 1bit라고 합니다.


1byte는 8bit가 이뤄진 집합니다.


1kb 는 1024byte : kb(킬로 바이트)


1mb는 1024kb : mb(메가 바이트)


1gb는 1024mb : gb(기가 바이트)


1tb는 1024gb : tb(테라 바이트)


1pb는 1024tb : pb(페타 바이트)


입니다.


그렇다면 왜 저렇게 1024로 되는걸가요 그것은 이의 제곱 식을 쓰기 때문입니다. 전기는 두가지 극 어쩌고 저쩌고 하는데 여까지만 딱여까


지만 더 깊이 파고들면 머리아풔요ㅠㅠ


 그래서 2의 제곱식으로 1000이 나오지 않기 때문에 1024 즉 2의 10제곱을 쓰게됩니다.


그래서 윈도우 포맷할 때 나는 분명 500gb 하드를 250gb씩 나눌려고 250,000로 나눴다가 실패 하는 이유가 여기있습니다^^~


그렇다면  반띵(절반) 하려면 어떻게 해야 될가요??


실재 포맷 할때 표기된 수치를 메가로 환산 한 다음 나누기 2해서 그수치 해주면 됩니다~ ㅎㅎㅎ


본론으로 돌아가 ~


char자료형은 1byte 를 사용합니다.


1byte 는 다시 말해 8bit입니다.


8bit 로 표현 할수 있는 수는 몇가지 될까요?


2의 8승 해주면 바로 256입니다. 그래서 char가 표현 가능한 숫자는 -128~127 입니다.~ 숫자 0을 포함 해서요~~ ㅎㅎ


그래서 0~ 255까지  256 숫자가 나옵니다.


오늘은 여까지~ 퇴근안하고 회사에 앉아서 잠깐 머리 식힐겸해서 정리 해봅니다^^


공부 하시는 분들에게 도움이 되길 바랍니다.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 

1. 수학에서 말하는 정수다.

2. 크기는 4 byte 이다.

3. 표현범위( unsigned가 붙지않는 경우 ) -2147483648 ~ 2147483647


--

오늘은 조금 무리해서 변수와 메모리 관련해서 조금 심도 있게 이야기를 해보려합니다. 우선은 코드 보면 이해가 되지 않는 구간이


다소 있을것입니다. 눈치가 빠른분들은 ^^ 최대치를 넘으면 음수로 된다는것을 알겠지요 ^^ 


--


소스코드

#include<stdio.h>


int main (void)

{

int nCount = 0;// 32 bit 변수

int nStopCount = 0;


__int64 n64Count = 0; // 64 bit 변수

__int64 n64StopCount = 0;


for(nCount; nCount > -1; ++nCount)

{

nStopCount = nCount;// 조건식이 성립될때 까지 반복하며 값을 복사합니다.

}


printf("int 변수가 표현 할수 있는 양의 최대수는 %d 입니다. \n", nStopCount);

printf("int 변수가 표현 할수 있는 음의 최대수는 %d 입니다. \n", nCount);


return 0;

}



결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

013 실수형 변수( float, double )  (0) 2016.09.21
바이너리와 2진수 (binary)  (0) 2016.09.20
011 문자형 변수 이해하기( char )  (0) 2016.09.20
010 컴파일러( Compiler )  (0) 2016.09.19
009 주석  (0) 2016.09.19
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : character 의 약자의 char 로 변수를 선언하며 크기는 1byte 입니다. 사용 용도는 알파벳 혹은 기호를 표현 하기 위해서 사용됩니다.


-128 ~ 127 까지 총 255표현  범위를 가지고 있습니다....


ps.

주제에 맞게 한개만 설명해야 하는데 먼가 부수적으로 바이너리에 대해서 설명도 해야되는지... 대략 난감 ㅎㅎ


이거 먼거 이상해... 그리고 아스키 코드값도 설명 해줘야 될것같은 느낌이... ... 고민되내 ㅎㅎㅎ 그래도 항상 주제아 맞게만 설명하도록 


할게요;;; unsigned 도 설명해야하는데.. 답답 ㅎㅎ


example ) char Ch = 'A'; //문자 자체를 표현 할때는 ' '  작은따움표 안에 표기를 합니다.


소스 코드 : main.c

#include<stdio.h>


int main(void)

{

char Ch = 0;

//printf("%c", -128);

//system("pause");

for (Ch; Ch < 127; Ch++)

{

printf("%c 값은 정수로 %d 입니다.\n", Ch, Ch);

}


return 0;

}


결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

바이너리와 2진수 (binary)  (0) 2016.09.20
012 정수형 변수( int )  (0) 2016.09.20
010 컴파일러( Compiler )  (0) 2016.09.19
009 주석  (0) 2016.09.19
008 함수의 개념  (0) 2016.09.14
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 사용자가 입력한 문장을 기계적 언어(목적 프로그램 으)로 바꾸어주는 프로그램입니다.( 프로그램 빌드에 대한 심화를 다루면서 더 자세히 이야기 하도록 하겠습니다. ) 



'Programing - C > C Basic grammar ' 카테고리의 다른 글

012 정수형 변수( int )  (0) 2016.09.20
011 문자형 변수 이해하기( char )  (0) 2016.09.20
009 주석  (0) 2016.09.19
008 함수의 개념  (0) 2016.09.14
007 문자열 개념  (0) 2016.09.14
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 소스코드에 영향을 주지 않고 순수 문장으로 구성된 설명 혹은 글입니다.


사용 방법 1 : 한줄 주석입니다 // 이후의 문장은 모두 주석으로 처리 됩니다.

example)

// 내용  


사용 방법 2 : 구역 주석 /* 주석의 시작을 뜻하고 */ 을 만날때까지 구간을 모두 주석으로 처리합니다.

example)

/* 내 용 */


소스 코드 : main.c


#include <stdio.h>


int main(void)

{

//한줄 주석

/*

구간 주석 프로그램에 영향을 주

지 않으며 광범위 또는 짧게 구간

을 설정할수 있습니다.

*/


return 0;

}


결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

011 문자형 변수 이해하기( char )  (0) 2016.09.20
010 컴파일러( Compiler )  (0) 2016.09.19
008 함수의 개념  (0) 2016.09.14
007 문자열 개념  (0) 2016.09.14
006 반복문  (0) 2016.09.09
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :

C언어에서 정말 함수를 빼놓고 말하기 힘들정도로 그 빈도는 아주 높습니다. 일단 구조는 앞전에 Hello world 에서 설명 했던 것처럼


반환형 함수의이름 (자료를 받는공간){ 몸체 } 구성 입니다.  함수에 대한 심화 과정에서 자세히 알려드릴테니 조급함은 잠시 미루고 이렇


게 이렇게 사용 한다에 초점을 맞춰서 익숙해 지는 방법을 터득하는 것이 중요 합니다.


소스코드

#include <stdio.h>

//case 1

int add(int ,int );


//case 2

int mul(int a, int b)

{

return a*b;

}


int main (void)

{

const int c = 2;

const int d = 3;


printf(" 변수 c 와 d 의 덧셈 결과는 %d 입니다. \n",add(c,d));

printf(" 변수 c 와 d 의 곱셈 결과는 %d 입니다. \n", mul(c,d));

return 0;

}


int add(int a, int b)

{

return a+b;

}


결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

010 컴파일러( Compiler )  (0) 2016.09.19
009 주석  (0) 2016.09.19
007 문자열 개념  (0) 2016.09.14
006 반복문  (0) 2016.09.09
005 조건문  (0) 2016.09.08
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 문자열이란 문장을 뜻합니다. 이것은 하나의 나열된 변수의 집합체에 저장됩니다.


소스코드


#include <stdio.h>


int main (void)

{

char* chat = "이것은 먼가요?";

char array[6] = {'a','b','c','d','e','\0'}; // 


printf("%s \n", chat);

printf("%s \n", array);

printf("%s \n", "어라 이것도 멀까?");

printf("이것 자체도 문자열 입니다.\n");


return 0;

}


결과




'Programing - C > C Basic grammar ' 카테고리의 다른 글

009 주석  (0) 2016.09.19
008 함수의 개념  (0) 2016.09.14
006 반복문  (0) 2016.09.09
005 조건문  (0) 2016.09.08
Hello World 심화  (0) 2016.09.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. 개요 : 단순 반복을하는 문장 

2. 구조

조건식 과 몸체로 if 문과 매우 유사하나 조건이 참인 한도내에서 반복한다.

example)

while(조건식)

{ 몸체

}


3. 종류

while 문, do ~ while 문, for문 3가지가 있다.


4. 특징

while : 조건문과 매우 유사하게 생겼으며 문장 안에 조건식이 멈추는 식을 넣어줘야한다.


do ~ while : 일단 한번 몸체에 해당하는 코드를 실행한후 조건식을 검사한다.


for : 조건 변수와 조건식 조건식이 멈추는 코드가 한줄에 정의 되어있으며 사용 빈도가 높다.


5. 소스 크드

#include<stdio.h>

int main(void)

{

//case 1 while

int whileCount =0;

const int whileBreak =5;


//case 2 do ~while

int do_whileCount = 0;

const int do_whileBreak = 5;


//case 3 for

int forCount = 0;

const int forBreak =5;



//case 1

while (whileCount < whileBreak)

{

printf("%d 번 while 문 루프\n",whileCount + 1);//여기서 카운트와 1을 더하는 이유는 0부터 루프가 돌기 때문입니다.

whileCount++;// 조건을 증감하는식으로서, 1을 증가 하는 코드입니다 . whileCount  = WhileCount + 1 과 같은 코드입니다. 

}


printf("최종 카운트 : %d\n",whileCount);

printf("----------\n");


//case 2

do

{

printf("%d 번 do While 문 루프\n",do_whileCount + 1);

do_whileCount++;

}while(do_whileCount < do_whileBreak);


printf("최종 카운트 : %d\n",do_whileCount);

printf("----------\n");


//case3

for(forCount = 0; forCount < forBreak; forCount++)

{

printf("%d 번 for 문 루프\n",forCount + 1);

}


printf("최종 카운트 : %d\n",forCount);


}


결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

008 함수의 개념  (0) 2016.09.14
007 문자열 개념  (0) 2016.09.14
005 조건문  (0) 2016.09.08
Hello World 심화  (0) 2016.09.07
004 사칙 연산 + 나머지 연산  (0) 2016.09.06
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

정의 : 조건식과 몸체로 나뉘는 문법으로서 다음과 같이 정의한다

if ( 조건식 )

{

몸체

}

조건식의 결과 값이 0이 아닌 모든 값은 참으로 처리한다.


코드 : 

#include<stdio.h>

int main (void)

{

const int A = 12;

const int B = 0;


//case 1

if(A)

{

printf("상수 값 A는 0이 아닙니다.\n");

}


//case 2

if(B)

{

printf("상수 값 B는 0이 아닙니다.\n");

}

else // 여기서 else 는 if문을 총족하지 못하면 들어 오는 나머지 처리 문장입니다.

{

printf("상수 값B는 0입니다.\n");

}


//case 3

if(A  > B) // 부등식 꺽쇠 갈호 한쪽을 연산자로 사용합니다. 이조건이 참이라면 아래의 본체를 한번 실행한고 else if  

{          // 와 else 를 검사및 실행을 하지않게 그냥 지나가게 됩니다. 거짓이라면 아래의 else if를 실행합니다.

printf("상수 A 는 B 보다 크다\n");

}

else if(A < B) //else if 는 if와 쌍을 이룰수 있으며 차선 조건이 되겠습니다. else if에 대해서 나중에 심도 있게 정리하겠습니다.

{

printf("상수 A 는 B 보다 작다\n");

}

else// else 는나머지 입니다. 

{

printf("상수 A 와 B는 같다\n");

}


return 0;

}


결과


'Programing - C > C Basic grammar ' 카테고리의 다른 글

007 문자열 개념  (0) 2016.09.14
006 반복문  (0) 2016.09.09
Hello World 심화  (0) 2016.09.07
004 사칙 연산 + 나머지 연산  (0) 2016.09.06
003 상수 개념(constant)  (0) 2016.08.30
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

-빠르게 프로그램을 공부 하실분은 그냥 페이지를 닫기 해주는게 정신 건강에 좋습니다. 그리고 기초를 천천히 다지 시는 분이라면 


한번쯤 읽어 주는게 좋은 공부가 되실것입니다.


example>


#include<stdio.h> // 선언부 


int main (int argc, char *argv[])

{

return 0;

}


선언부 설명:


# 은 전처리기 뜻합니다. 


전처리기란 무엇이냐면 프로그램 실행에 앞서 메모리에 올리고 시작하는 정의 입니다.


include 란 단어는 포함 입니다. 그렇다면 꺽새 괄호 안의 내용은 바로 선언하는 내용이 되겟습니다.


stdio.h 은 선언 하는 바의 내용을 뜻 하는 것입니다. stdio 란 단어와 h란 단어는 약자입니다.


standard input output header 입니다.


int main (int argc, char *argv[]) 는 프로그램을 시작하는 시작 지점인과 동시에 프로그램 자체의 본체가 됩니다.


함수에 대한 설명을 간략하게 하자면


반환형 + 이름 + 파라메터(프로그램 실행할때 받는 값) 

{ } //함수의 몸체에 해당 합니다.

'Programing - C > C Basic grammar ' 카테고리의 다른 글

006 반복문  (0) 2016.09.09
005 조건문  (0) 2016.09.08
004 사칙 연산 + 나머지 연산  (0) 2016.09.06
003 상수 개념(constant)  (0) 2016.08.30
002 변수(Variable)  (0) 2016.08.29

+ Recent posts