영상 4번째 봅니다. 영상은 녹화된 상태라 그대로일건데, 보고있는 저는 않들리던 곳들이 보입니다. 신기하네요 ㅎㅎ 방향을 모른체 막연하게 프로그래밍을 익혀야겠다고, 생각하고 무조건 '파이썬' 이나 '자바스크립트'로 지난 1년간을 보내보니, 엄청난 시간낭비를 했구나 라고 느끼고 있습니다. 처음엔 몰랐는데, 영상강의와 책을 반복하여 보면서, 점차 머리속에 제대로된 설계도면이 그려지기 시작합니다. 아직 갈길은 멀겠지만, 느리더라도 기초들을 더 굳게 잡아놓고, 그위에 꿈을 그려가볼 생각입니다. 현재 C++도 함께 시작했는데, 어느정도 C언어를 이해하고 나니 자연스럽게 익혀지네요. 만학도이며 독학자입장에서, 너무나도 막연해, 공부하는 방향이나 길에 대한 의문 혹은 걱정들이 많았지만, 김성엽대표님의 블로그와 영상강의 그리고 교재가 많은 힘이 됩니다. 고맙습니다.
15:10 여기에 있는 첫번째 부호가 없는 자료형이 128이라고 적혀 있는데 이 원리가 0은 표현할 수 있는 최소값이기 때문에 최소값을 제곱하게 된다면 127이 되고, 여기서 앞에 1이 있기 때문에 1을 더하게 된다면 128이 되기 때문에 128이 되는 건가요? 아니라면 이유를 알 수 있을까요?
다른 이유가 있는 것은 아니고 0000 0000을 0이라고 했을 때 1000 0000 값이 128입니다. 각 자릿수가 2의 승수를 의미하기 때문에 1000 0000 라는 패턴은 1*2의 7승+0*2의6승 + 0*2의 5승... + 0*2의 0승 = 128 이렇게 나온것입니다.
강의 감사히 듣고 있습니다. 제가 컴퓨터를 잘 몰라서 헷갈리는 내용이 있는데, 영상에서 int나 long의 저장 범위가 4byte이라고 나와있는데 복습하면서 관련 내용을 더 찾아보니 어디선 long이 8byte라고 하고 또 어디선 int와 long은 다른 개념이라고 하기도 하는 등 배운 것과 차이가 있어 헷갈리는데, 일단 다른 정보는 놔두고 영상 내용으로 학습하면 될까요?
메모리에서 큰 크기의 값을 좀 단순하게 표현하기 위해서 2의 10승 단위로 새로운 단위를 부가하고 있습니다. 2의 10승 바이트가 1K바이트이고 2의 10승 킬로바이트가 1M 바이트입니다. 즉, 1024*1024 바이트 이렇게 이야기하면 숫자가 너무 크니까 1MBytes 이렇게 표현하는 것입니다. 그래서 큰 숫자를 다룰때는 2의 10승 단위로 표현을 하기 때문에 32비트를 2의 10승 단위의 표현법으로 사용하기 위해 2의 8승대신 2의 10승으로 표시한 것입니다.
궁금한게 있는데요, 보통 메모리 용량 계산할 때, 2^n*m이라는 식을 사용하는데, 여기서 n은 주소선의 갯수=MAR=PC, m은 워드당 비트수=MBR=IR로 알고 있는데요, 32bit 운영체제는 m이 32비트라고 알고 있거든요. 그런데 설명을 들으니 32비트 운영체제도 m이 1바이트라고 설명하시고 n이 32라고 설명하시는 것 같아서요. 32비트 운영체제에서 32비트의 의미는 cpu가 한번에 처리할 수 있는 명령어의 크기, 즉 워드의 크기=m 이 아닌가 해서요. 헷갈립니다. 다시 정리하자면, 제가 알기로는 32비트 운영체제에서 32비트의 의미는 워드당 비트수=MBR라고 알고 있는데, 강사님은 MAR의 비트수를 말씀하시는 것 같아서요. 추가 설명이나 참조할 수 있는 사이트가 있을까요?
안녕하세요 선생님. 여러 번 곱씹어도 잘 이해가 안가서 질문 드립니다. ㅠㅠ. float의 가수부 23bit이 왜 유효숫자가 6자가 되고 double의 가수부 53bit이 왜 유효숫자 16자가 되는지 잘 모르겠습니다. 구글링도 계속 해봤는데 속시원히 알 수가 없었습니다. 언뜻 생각해보면 float의 경우 가수부가 23bit라면 굉장히 큰 수도 표현할 수 있는 엄청난 비트수인데 어째서 고작 6자리밖에 표현을 못하나요? 부동소수점은 100% 정확하게 나타낼 수 없다~ 때문인건 대충 예상이 가는데, 도대체 어떤 방법 때문에 유효 숫자가 저렇게 결정이 되는지 모르겠습니다. 그냥 사람들이 최대한 공간 활용하려고 자기맘대로 규칙을 정한건가요? 그래서 모르는게 당연한건가요?
정수의 경우 값의 단위가 1씩 증가하기 때문에 범위와 유효 숫자가 일치하지만 실수는 증가 또는 감소하는 값의 단위가 0.1이 될 수도 있고 0.01이 될 수도 있기 때문에 범위가 넓어지면 어떤 자릿수까지 값이 유효한지 여부가 필요한 것입니다. 사실 방법에 따라 더 유효숫자를 늘리는 방법도 있지만 속도와 값의 범위를 고려했을 때 지금의 유효 자릿수가 적정하다고 판단되어 표준으로 정해진 것입니다.
선생님~ char에도 숫자를 저장할수 있으며 int가 char보다 많은공간을 이용해서 저장한다는것까지 이해했습니다. 코딩연습을 하는도중 그럼int에도 문자열을 저장시킬수있는건 당연하겟다라고 생각해서 int a[ ]="hello" 이렇게 선언후 %s로 출력을 시도했는데 오류가 나서 질문드립니다.. int에는 문자열을 저장못시키는건가요?
int 에도 문자열을 저장할 수는 있지만 C 언어 기본 초기화 문법을 사용하면 char [] 형식일때만 대입되기 때문에 오류가 발생하는 것입니다. 즉, 권장하는 형식이 아니라서 직접 지원을 안해주는 것입니다. 따라서 int 형식의 배열에 값을 대입하고 싶다면 문자열을 구성하는 가 문자를 한 개씩 배열에 직접 대입해야합니다.
그리고 모든 문자열을 다루는 함수들이 char * 또는 char [] 형식으로 되어 있어서 이렇게 임의로 문자열 형식을 변경하게 되면 기본적으로 제공하는 함수를 모두 사용하지 못하게 되어 int * 또는 int []를 지원하는 문자열 함수들을 직접 다시 만들어야 합니다.
아래에 링크한 글을 먼저 읽어보세요. blog.naver.com/tipsware/222432597484 위 링크에도 있지만 비전공자라면 아래에 링크한 강좌부터 보는것이 좋습니다. 동영상 강좌에요. 이 내용도 어렵다면 반복해서 많이 보세요. blog.naver.com/tipsware/221563901660
궁금한게 있습니다. 강의에서 char에 숫자를 넣어도 된다고 말씀을 하셨습니다. 그래서 일부러 값이 작을 때 unsigned char에 넣어봤어요. unsigned char h=0, age=0; scanf("%d %d", &h, &age); 이렇게 하고 145 11 이란 값을 입력했는데 h에는 값이 안들어가고(초기값 그대로 0) age에만 값이 들어갑니다. ㅠㅠ. 입력 버퍼에서 뭔가 제가 생각지 못한게 있는거같은데 이해가 안갑니다. ㅠㅠ
1024테라가 1페타(PB), 1024페타가 1엑사(EB) 바이트입니다. 1EB가 2의 60승이니까 2의 64승이면 16EB 겠네요. 32비트 Windows 운영체제는 기본적으로 램을 4기가까지만 사용이 가능합니다. 만약 그 이상을 설치했다면 램 드라이브 같은 소프트웨어를 설치해서 램을 디스크 처럼 사용하는 방법으로 어느정도 사용가능합니다. 하지만 모든 램 드라이브가 이 기능을 다 지원하는 것은 아니기 때문에 잘 확인해서 사용해야 합니다.
64비트이면 8바이트 주소를 사용하기 때문에 많이 커집니다 ㅎ 2^4 x 2^10 x 2^10 x 2^10 x 2^10 x 2^10 x 2^10 = 16EB(엑사바이트)입니다. EB(엑사 바이트)는 GB(기가 바이트), TB(테라 바이트), PB(페타 바이트) 다음입니다.
당연히 C 언어도 가능합니다. 그리고 실제 적용될 때는 C 언어로 하는 경우가 더 많을걸요? 테스트나 공부할 때는 파이썬 같은 언어로 하는게 더 쉽고 보급도 좋으니 그런거고 실제 사용하려면 더 높은 성능을 내기 위해서 C 언어로 다시 개발하는 경우도 많습니다. 지금 파이썬을 사용하는 이유는 기술의 보급이 더 쉬워서 그런거라고 생각합니다. 이 분야를 확장하려는 사람들에게는 많은 사람들이 공부하고 사용하는게 더 중요할테니까요.
어떻게 했는지 잘 모르겠지만 제대로 출력이 되어야 합니다. 하지만 unsinged 로 출력하고 싶다면 %d가 아니라 %u로 출력해야합니다. printf 함수 내부적으로 %d로 하면 넘어온값이 unsigned 형태라도 signed 형식으로 형변환되어 사용되기 때문에 unsigned 값이 제대로 출력되지 않습니다.
해당 함수를 사용하는 명령어나 옵션이 달라집니다. 97을 문자로 사용하고 싶다면 97을 문자로 처리하는 명령문을 사용하고 숫자로 사용하고자한다면 숫자로 처리하는 명령문을 사용합니다. 즉, 컴퓨터는 값으로 판단하는 것이 아니라 명령문으로 상황을 판단하고 그 명령문과 함께 사용된 값을 그 명령 기준에 맞게 사용할 뿐입니다.
확실히 책과 같이 보니까 공부가 더 잘 되네요. 예전에도 컴퓨터 공부 시도는 많이 했다가 매번 실패했었는데, 이번에는 재미라는 게 느껴지면서 끝까지 할 수 있을 것 같은 예감이 듭니다 ㅎㅎ 최소 10번은 반복해서 볼 각오로 공부하고 있습니다. 이런 강의, 책 만들어 주셔서 감사합니다. 자료형에 대해 질문이 있어요. '데이터를 메모리에 저장하는 작업은 정해 놓은 단위로만 가능합니다.'라고 되어있는데, 컴퓨터는 왜 이런 식으로 되어있는 거죠? 그냥 그런 포장 상자를 정하지 말고 알맹이에 딱 필요한 만큼만 그때그때 저장을 하면 안 되는 이유가 있나요?
ㅎㅎ 이런 내용을 처음 접하는 사람들은 익숙하지 않아서 어렵게 느껴지는건 당연한 현상입니다. 사실 C 언어는 익숙해지는게 관건이기 때문에 어렵게 느껴지면 이해하려고 하지 마시고 3~4번 보시면서 익숙하게 만드는게 더 좋습니다. 익숙해지면 안보이던것이 보이고 안들리던것이 들리기 시작할 것입니다~
말도 제대로 못하는 교수가 어버버하면서 글만 줄줄 읽는 비대면강의 도저히 못듣겠어서 유튜브로 배우는중인데 설명 알아듣게 자세히 해주시니 너무 좋네요 ㅜㅜ 감사합니다
ㅎㅎ 파이팅입니다!
진짜 좋아요. 학교에서 배울때 대충 넘어가던걸 하나하나 다 이유를 설명해주셔서 너무 좋습니다. char에 정수를 담아서 효율적인 메모리 관리를 할 수 있을줄 상상도 못했네요.
공부하다가 궁금한점 있으면 제 블로그로 질문하세요~ :)
진짜 기가 막히는 설명이네요. 정말 원리를 완벽히 알고 계시는 것 같아요...! c언어 무지렁이인 제가 들어도 원리가 어느정도 느껴질 정도이면... 고수들은 알아도 이렇게 가르쳐주지 않는 건지 그냥 기계적으로 코딩을 하는 것인지... ㅠㅠ
제가 요즘 바빠서 댓글 확인을 잘 못했네요. ㅎㅎ
포기하지 마시고 끝까지 완강하셔서 주변에 다른 개발자들에게 친절하게 설명해주는 개발자가 되시기를 바랍니다~ :)
영상 4번째 봅니다.
영상은 녹화된 상태라 그대로일건데, 보고있는 저는 않들리던 곳들이 보입니다. 신기하네요 ㅎㅎ
방향을 모른체 막연하게 프로그래밍을 익혀야겠다고, 생각하고 무조건 '파이썬' 이나 '자바스크립트'로 지난 1년간을 보내보니,
엄청난 시간낭비를 했구나 라고 느끼고 있습니다.
처음엔 몰랐는데, 영상강의와 책을 반복하여 보면서, 점차 머리속에 제대로된 설계도면이 그려지기 시작합니다.
아직 갈길은 멀겠지만, 느리더라도 기초들을 더 굳게 잡아놓고, 그위에 꿈을 그려가볼 생각입니다.
현재 C++도 함께 시작했는데, 어느정도 C언어를 이해하고 나니 자연스럽게 익혀지네요.
만학도이며 독학자입장에서, 너무나도 막연해, 공부하는 방향이나 길에 대한 의문 혹은 걱정들이 많았지만,
김성엽대표님의 블로그와 영상강의 그리고 교재가 많은 힘이 됩니다.
고맙습니다.
와우! 대단하시네요 ㅎㅎ
계속 꾸준하게 하셔서 C언어를 마음것 사용하는 개발자가 되시기 바랍니다~ :)
책과 함께 영상으로 공부하고 있습니다. 세세 하면서도 꼼꼼히 친절하게 차근차근 설명해 주셔서.. 많은 도움이 됩니다. javaScript 를 공부하다가 좀더 근본적인 부분에 대한 이해가 필요하다 생각되어서 C언어부터 제대로 익히려 도전해 봅니다. 감사합니다.
파이팅입니다~ :)
와 진짜 이해가 너무 잘 돼요 감사합니다 ㅠㅠ
꾸준히 공부하셔서 끝까지 완강하세요 ㅎㅎ
파이팅입니다 :)
15:10 여기에 있는 첫번째 부호가 없는 자료형이 128이라고 적혀 있는데 이 원리가 0은 표현할 수 있는 최소값이기 때문에 최소값을 제곱하게 된다면 127이 되고, 여기서 앞에 1이 있기 때문에 1을 더하게 된다면 128이 되기 때문에 128이 되는 건가요? 아니라면 이유를 알 수 있을까요?
다른 이유가 있는 것은 아니고 0000 0000을 0이라고 했을 때 1000 0000 값이 128입니다. 각 자릿수가 2의 승수를 의미하기 때문에 1000 0000 라는 패턴은 1*2의 7승+0*2의6승 + 0*2의 5승... + 0*2의 0승 = 128 이렇게 나온것입니다.
@@tipsware 감사합니다!
22.08.08 오늘도 공부하고 갑니다.. 설명해주시게 꼼꼼히 해주시게 느껴지기는 하는데 제가 모르는 걸 배우다 보니 이해를 못 하는 게 아쉽네요 ㅠ 좀 더 하면 이해하는 날이 올거라 믿고 열심히 하겠습니다~
한걸음씩 차근 차근 나아가시면 됩니다. 누구든 어려운 것이 사실이고 시간 투자한 만큼 잘하게 되는 것도 사실이니, 포기하지 마시고 계속 반복해서 보세요. 결국 익숙해지면 이해가 됩니다.
감기 걸리신 거 같은데 너무 고생하셨어요!!감사합다^^
ㅎㅎ 파이팅입니다!
아무것도 모르는 상태에서 책사서 공부 중입니다 큰도움이 되고 있습니다
아래에 링크한 글을 읽어보셨죠?
blog.naver.com/tipsware/222432597484
파이팅입니다~ :)
강의 감사히 듣고 있습니다. 제가 컴퓨터를 잘 몰라서 헷갈리는 내용이 있는데, 영상에서 int나 long의 저장 범위가 4byte이라고 나와있는데 복습하면서 관련 내용을 더 찾아보니 어디선 long이 8byte라고 하고 또 어디선 int와 long은 다른 개념이라고 하기도 하는 등 배운 것과 차이가 있어 헷갈리는데, 일단 다른 정보는 놔두고 영상 내용으로 학습하면 될까요?
공식적으로 8바이트 표현은 long long 입니다. 즉, long을 두 번 적어야 합니다. 인터넷에 잘못된 내용도 많으니, 제 강좌로 공부할 때는 다른 내용과 혼용해서 공부하지 마세요 ㅎㅎ
@@tipsware 네!! 감사합니다
제가 이해 안되는 점이 있는데 9:30 여기에 있는 표를 보면은 1 바이트는 위에 있는 바이트의 개념으로 봤을 땐 2^8로 되어야 하는 걸로 이해가 되거든요? 근데 왜 2^10이 되는 건가요?
메모리에서 큰 크기의 값을 좀 단순하게 표현하기 위해서 2의 10승 단위로 새로운 단위를 부가하고 있습니다. 2의 10승 바이트가 1K바이트이고 2의 10승 킬로바이트가 1M 바이트입니다. 즉, 1024*1024 바이트 이렇게 이야기하면 숫자가 너무 크니까 1MBytes 이렇게 표현하는 것입니다. 그래서 큰 숫자를 다룰때는 2의 10승 단위로 표현을 하기 때문에 32비트를 2의 10승 단위의 표현법으로 사용하기 위해 2의 8승대신 2의 10승으로 표시한 것입니다.
@@tipsware 감사합니다!
안녕하세요 강의 정말 감사히 듣고있습니다. 제어 SW 엔지니어 현업에서 일하면서 틈틈이 공부하는 중인데 혹시 집필하신 'Do it C 언어 입문' 서적에도 동영상에서와 마찬가지로 데이터 저장 단위, 메모리 기초 관련 내용들이 있나요? 책을 구매하려고 합니다.
네~ 있습니다. 하지만 이 내용은 아래에 링크한 자료에 더 잘 설명되어 있으니, 이 동영상 강좌로 공부하시는 것이 더 좋습니다. 그리고 계속 공부하시려면 책도 사시는 것이 좋습니다 ㅎㅎ
blog.naver.com/tipsware/221563901660
궁금한게 있는데요, 보통 메모리 용량 계산할 때, 2^n*m이라는 식을 사용하는데, 여기서 n은 주소선의 갯수=MAR=PC, m은 워드당 비트수=MBR=IR로 알고 있는데요, 32bit 운영체제는 m이 32비트라고 알고 있거든요. 그런데 설명을 들으니 32비트 운영체제도 m이 1바이트라고 설명하시고 n이 32라고 설명하시는 것 같아서요. 32비트 운영체제에서 32비트의 의미는 cpu가 한번에 처리할 수 있는 명령어의 크기, 즉 워드의 크기=m 이 아닌가 해서요. 헷갈립니다. 다시 정리하자면, 제가 알기로는 32비트 운영체제에서 32비트의 의미는 워드당 비트수=MBR라고 알고 있는데, 강사님은 MAR의 비트수를 말씀하시는 것 같아서요. 추가 설명이나 참조할 수 있는 사이트가 있을까요?
현재 대부분의 32비트 운영체제는 주소를 관리하는 단위가 1바이트이고 32비트 운영체제는 주소를 저장하는 메모리 공간을 4바이트로 사용하기 때문에 2의32비트까지 주소 표현이 가능하다고 설명한 것입니다.
강좌 듣고있는데 정말 쉽고 심플하게 가르쳐주시는것같네요
댓글을 자동 보류 걸어놓고 깜박했네요 ㅜ.ㅜ감사합니다~!
안녕하세요 강의 잘 듣고 있습니다. 궁금한게 있어 댓글 남깁니다. char에 숫자를 입력하면 그 숫자는 문자로 취급되나요?/
자료형은 문자형이지만 결국 내부적으로는 그냥 숫자일 뿐입니다. char는 1바이트 크기의 정숫값을 저장하는 자료형이지만 문자에 대한 아스키 코드값을 저장하는게 효율적이기 때문에 이름을 char로 정한것 뿐입니다.
@@tipsware 답변 감사합니다 :))
24:26 메모장
안녕하세요 선생님. 여러 번 곱씹어도 잘 이해가 안가서 질문 드립니다. ㅠㅠ. float의 가수부 23bit이 왜 유효숫자가 6자가 되고
double의 가수부 53bit이 왜 유효숫자 16자가 되는지 잘 모르겠습니다. 구글링도 계속 해봤는데 속시원히 알 수가 없었습니다. 언뜻 생각해보면 float의 경우 가수부가 23bit라면 굉장히 큰 수도 표현할 수 있는 엄청난 비트수인데 어째서 고작 6자리밖에 표현을 못하나요? 부동소수점은 100% 정확하게 나타낼 수 없다~ 때문인건 대충 예상이 가는데, 도대체 어떤 방법 때문에 유효 숫자가 저렇게 결정이 되는지 모르겠습니다. 그냥 사람들이 최대한 공간 활용하려고 자기맘대로 규칙을 정한건가요? 그래서 모르는게 당연한건가요?
정수의 경우 값의 단위가 1씩 증가하기 때문에 범위와 유효 숫자가 일치하지만 실수는 증가 또는 감소하는 값의 단위가 0.1이 될 수도 있고 0.01이 될 수도 있기 때문에 범위가 넓어지면 어떤 자릿수까지 값이 유효한지 여부가 필요한 것입니다. 사실 방법에 따라 더 유효숫자를 늘리는 방법도 있지만 속도와 값의 범위를 고려했을 때 지금의 유효 자릿수가 적정하다고 판단되어 표준으로 정해진 것입니다.
선생님~ char에도 숫자를 저장할수 있으며 int가 char보다 많은공간을 이용해서 저장한다는것까지 이해했습니다. 코딩연습을 하는도중 그럼int에도 문자열을 저장시킬수있는건 당연하겟다라고 생각해서 int a[ ]="hello" 이렇게 선언후 %s로 출력을 시도했는데 오류가 나서 질문드립니다.. int에는 문자열을 저장못시키는건가요?
int 에도 문자열을 저장할 수는 있지만 C 언어 기본 초기화 문법을 사용하면 char [] 형식일때만 대입되기 때문에 오류가 발생하는 것입니다. 즉, 권장하는 형식이 아니라서 직접 지원을 안해주는 것입니다. 따라서 int 형식의 배열에 값을 대입하고 싶다면 문자열을 구성하는 가 문자를 한 개씩 배열에 직접 대입해야합니다.
그리고 모든 문자열을 다루는 함수들이 char * 또는 char [] 형식으로 되어 있어서 이렇게 임의로 문자열 형식을 변경하게 되면 기본적으로 제공하는 함수를 모두 사용하지 못하게 되어 int * 또는 int []를 지원하는 문자열 함수들을 직접 다시 만들어야 합니다.
제가 문돌이 출신이라 이 영상으로 처음 코딩을 접하는데... 사실 지금까지 제가 공부해온 영역들이랑 너무 달라 윗분들 반응이 신기할 정도로 너무 어렵습니다....;;; 책을 먼저 보고 와야 할까요.....??? 아니면 계속 반복 시청하면 좀 나아질런지...
아래에 링크한 글을 먼저 읽어보세요.
blog.naver.com/tipsware/222432597484
위 링크에도 있지만 비전공자라면 아래에 링크한 강좌부터 보는것이 좋습니다. 동영상 강좌에요.
이 내용도 어렵다면 반복해서 많이 보세요.
blog.naver.com/tipsware/221563901660
궁금한게 있습니다. 강의에서 char에 숫자를 넣어도 된다고 말씀을 하셨습니다. 그래서 일부러 값이 작을 때 unsigned char에 넣어봤어요. unsigned char h=0, age=0; scanf("%d %d", &h, &age); 이렇게 하고 145 11 이란 값을 입력했는데 h에는 값이 안들어가고(초기값 그대로 0) age에만 값이 들어갑니다. ㅠㅠ. 입력 버퍼에서 뭔가 제가 생각지 못한게 있는거같은데 이해가 안갑니다. ㅠㅠ
scanf 함수를 사용해서 1바이트 값을 입력 받을때는 %d가 아니라 %hhd를 사용해야 합니다. %d는 int형, %hd는 short형 %hhd는 char 형에 사용하는 형식입니다.
좀더 자세한 설명은 아래에 링크한 글을 참고하세요~
blog.naver.com/tipsware/221181265697
@@tipsware 그렇군요 정말 감사드립니다. 너무 이해가 잘갑니다. ㅠㅠ
감사합니다
파이팅입니다~ :)
혹시 램관련해서 궁금한데 32비트 운영체제를 사용한다면 결국 램이 아무리 높아도 4gb밖에 처리를 할수 없다는 내용인가요??
그러면 반대로 64비트 운영체제는 램을 몇기가 까지 사용할수 있는거죠? 2의64승의 비트를 사용가능한거면 테라바이트도 훨씬넘는거 아닌가요???
1024테라가 1페타(PB), 1024페타가 1엑사(EB) 바이트입니다. 1EB가 2의 60승이니까 2의 64승이면 16EB 겠네요.
32비트 Windows 운영체제는 기본적으로 램을 4기가까지만 사용이 가능합니다. 만약 그 이상을 설치했다면 램 드라이브 같은 소프트웨어를 설치해서 램을 디스크 처럼 사용하는 방법으로 어느정도 사용가능합니다. 하지만 모든 램 드라이브가 이 기능을 다 지원하는 것은 아니기 때문에 잘 확인해서 사용해야 합니다.
감사합니다 선생님!
32비트일때 2^32 = 2^2 x 2^10 x 2^10 x 2^10 = 4기가바이트 라고 한 거 이해가는데요. 64비트면 8기가바이트인데 저렇게 식으로 어떻게 표현하는지 알고싶어요.
64비트이면 8바이트 주소를 사용하기 때문에 많이 커집니다 ㅎ
2^4 x 2^10 x 2^10 x 2^10 x 2^10 x 2^10 x 2^10 = 16EB(엑사바이트)입니다.
EB(엑사 바이트)는 GB(기가 바이트), TB(테라 바이트), PB(페타 바이트) 다음입니다.
@@tipsware 복습차원에서 노트에 적어볼겸 한번 다시보는데 완벽하겐 아니어도 처음보단 모든것이 조금씩 익숙해지네요 이런 영상 만들어주셔서 정말 감사합니다 ㅠ.ㅠ
글 정리해놓고 여기에는 댓글을 안달았네요 ㅎ
blog.naver.com/tipsware/221608970847
뭐든지 익숙해지면 더 잘 이해된답니다~ 그래서 동영상 강좌를 알든 모르든 자주 반복해서 보라고 하는 것입니다 ㅎㅎ, 열심히 하셔서 좋은 개발자가 되기를 바랍니다~ :)
안녕하세요! 질문이있어서 댓글을 씁니다..
65의 아스키값은 A
A의 아스키값은 65 가 서로 같은말인지 궁금합니다.
애매한 표현이네요. 65의 아스키 값이라는 표현은 올바른 표현이 아닙니다. "아스키 코드 65번이 문자 A이다"라고 하거나 "A 문자의 아스키 코드 값이 65이다"라고 이야기 하는 것이 맞는 표현입니다.
머신러닝 분야와 C언어는 관련이 있을까요 ?
당연히 C 언어도 가능합니다. 그리고 실제 적용될 때는 C 언어로 하는 경우가 더 많을걸요? 테스트나 공부할 때는 파이썬 같은 언어로 하는게 더 쉽고 보급도 좋으니 그런거고 실제 사용하려면 더 높은 성능을 내기 위해서 C 언어로 다시 개발하는 경우도 많습니다. 지금 파이썬을 사용하는 이유는 기술의 보급이 더 쉬워서 그런거라고 생각합니다. 이 분야를 확장하려는 사람들에게는 많은 사람들이 공부하고 사용하는게 더 중요할테니까요.
비트를 안배우고 들어서 그런가 부호비트에서 뭔 소린지 모르겠는데 비트를 따로 공부를 하고 와야되나요? 1이니까 최댓값 0이니까 최솟값이고를 처음 들어봐서 모르겟네요...
저건 규정이라서 배운다기 보다는 "아~ 저렇게 정혀져있구나~"하고 넘어가셔야 합니다!
말그대로 8개의 데이터 비트중에 1개를 부호를 의미하는 비트로 사용할때 저렇게 사용한다고 정해진 것입니다~
visual studio 2019 버전에서는 unsigned long int 가 21억 얼마를 넘어가면 음수표현으로 넘어가는데 왜그러는 건가요?
변수의 값을 출력할 때 %d로 출력하면 자료형과 상관없이 signed 형식의 값으로 출력되어서 그렇습니다. %u로 출력해보세요~ 그러면 결과가 달라질 것입니다~ %u가 unsigned 형식의 값을 출력하는 형식 지정자입니다~
@@tipsware 감사합니다.
근데 왜 %d일때 unsigned short 는 2의 16승까지출력이되고 unsigned long 일때는 2³¹부터는 2³²출력 되지 않는건지 알수있을까요?
어떻게 했는지 잘 모르겠지만 제대로 출력이 되어야 합니다. 하지만 unsinged 로 출력하고 싶다면 %d가 아니라 %u로 출력해야합니다. printf 함수 내부적으로 %d로 하면 넘어온값이 unsigned 형태라도 signed 형식으로 형변환되어 사용되기 때문에 unsigned 값이 제대로 출력되지 않습니다.
비쥬얼 스튜디오 버젼이 안맞아도 되나요?
어떤 버전을 사용하시나요? VS2015, VS2017, VS2019는 비슷해서 상관없습니다.
각 버전별로 제 블로그에 사용법이 있으니 참고하시기 바랍니다~
컴퓨터가 문자 'a' 와 정수 97을 어떻게 구분하는 지 궁금해요
'a' 표현은 C 언어가 문법적으로 제공하는 표현일뿐 C 컴파일러에 의해 저 표현이 번역되면 97이 됩니다. 즉, 기계어 단계에서는 'a'라는 표현은 없고 97만 존재합니다. 즉, 컴퓨터는 구별할 필요가 없습니다.
즉, 개발자가 소문자 a 에 해당하는 코드를 사용하고 싶다면 97이라고 적는게 맞는데, 이렇게 되면 아스키 표를 개발자가 다외어아지 프로그래밍이 가능하기 때문에 C 언어가 좀더 편하게 아스키 코드를 사용할수 있도록 'a' 같은 문자 상수 표현을 제공하는 것입니다.
@@tipsware 정수 97도 97이고 'a' 도 97이면 컴퓨터는 이 둘을 구분해서 출력할때 어떤 과정을 거치는지 궁금합니다
해당 함수를 사용하는 명령어나 옵션이 달라집니다. 97을 문자로 사용하고 싶다면 97을 문자로 처리하는 명령문을 사용하고 숫자로 사용하고자한다면 숫자로 처리하는 명령문을 사용합니다. 즉, 컴퓨터는 값으로 판단하는 것이 아니라 명령문으로 상황을 판단하고 그 명령문과 함께 사용된 값을 그 명령 기준에 맞게 사용할 뿐입니다.
예를 들어, 문자를 출력하는 명령문에 97을 사용하면 97은 'a' 로 사용될 것이고 단순 정수 덧셈 연산에 97을 사용했다면 그냥 97이라는 숫자로 처리됩니다.
가르쳐 주셔서 감사합니다
파이팅입니다~ :)
short int 예문에서 int 를 안쓰셨길래 오타인줄 알았는데 생략이 가능한 부분이었네요.ㅋㅋㅋ 잘보고 갑니당
ㅎㅎ C 언어가 생략을 잘 지원해서 가끔 오해하는 사람들도 있더라구요~ :)
파이팅 입니다!!
확실히 책과 같이 보니까 공부가 더 잘 되네요. 예전에도 컴퓨터 공부 시도는 많이 했다가 매번 실패했었는데, 이번에는 재미라는 게 느껴지면서 끝까지 할 수 있을 것 같은 예감이 듭니다 ㅎㅎ 최소 10번은 반복해서 볼 각오로 공부하고 있습니다. 이런 강의, 책 만들어 주셔서 감사합니다.
자료형에 대해 질문이 있어요.
'데이터를 메모리에 저장하는 작업은 정해 놓은 단위로만 가능합니다.'라고 되어있는데, 컴퓨터는 왜 이런 식으로 되어있는 거죠?
그냥 그런 포장 상자를 정하지 말고 알맹이에 딱 필요한 만큼만 그때그때 저장을 하면 안 되는 이유가 있나요?
해당 부분은 앞부분이라 이해하기 편하시라고 그렇게 이야기 하는 것이고 나중에 동적 메모리 할당을 배우게 되면 그때그때 저장도 할 수있고 저장단위도 개발자가 변경할 수도 있습니다~ :)
@@tipsware 아 그렇군요. 답변 감사합니다~
학생이 라서 학교에서 틈날때 마다 C언어 공부를 하고싶어서 노트북을 살려는데 추천 해주실수 있나요??
제가 요즘 정신 없어서 답변이 늦었네요 ㅎ 이미 끝났을지 모르겠지만! 제 블로그에 있는 노트북 구매 가이드를 참고하세요~
결국 선택은 자신이 하는거라 ㅎㅎ
blog.naver.com/tipsware/221475391990
@@tipsware 오, 늦게라도 달아주셔서 감사합니다*^^*
메모: 26:13
47:15 책갈피
선생님 3장이 생초보자에게 어려운거 맞는지요?;; 붕뜬느낌이네요;;;
ㅎㅎ 이런 내용을 처음 접하는 사람들은 익숙하지 않아서 어렵게 느껴지는건 당연한 현상입니다.
사실 C 언어는 익숙해지는게 관건이기 때문에 어렵게 느껴지면 이해하려고 하지 마시고
3~4번 보시면서 익숙하게 만드는게 더 좋습니다. 익숙해지면 안보이던것이 보이고 안들리던것이 들리기 시작할 것입니다~
57:26
책깔피
34:32 책갈피
30:00
44:36
한달용돈 2만인디.. 부럽
ㅎㅎㅎ;;
바이트를 낭비하는 사람에 대한 분노가 느껴지는 강의 ㅋㅋ
ㅎㅎㅎ 분노는 아니고, 지금 우리가 사용하는 컴퓨터가 느리지고 프로그램이 느려지는 이유가 개발자 탓도 좀 크다~ 뭐. 이런 상황이라서 ㅎㅎ
저 책이랑 ebook 둘 다 샀어요 잘했죵ㅎ3ㅎ//
ㅎㅎ 감사합니다! 포기하지 마시고 끝까지 완독하시기를~ :)
독학하다가 힘들면 아래의 링크를 참고하셔서 책 인증하고 단톡방에 참여해도 됩니다.
blog.naver.com/tipsware/221425445362
2020-05-04
700만원 벌고싶어요~~~
ㅎㅎㅎ;;
45:11