님들 십진수 이진수 변화 이렇게 하면 여러번 하니 이렇게 하세용 1X2X2X2X2=16 1X2X2x2=8 1X2X2=4 1X2=2 1=1 이렇게 되니까 10011이라 하면 밑으로 순서대로 해가지고 1+2+16 해가지고 하면 19가 되니까 요런식으로 하면 쉬우니까 한번 해보세요
이해가 안가는 것이 당연합니다! 이해하는 것이 아니고 외워야 하는 것이니까요ㅜ. 각 진법간 변환은 이해하고 있다면 시간이 걸리더라도 할 수 있습니다. 하지만 빠르게 하고 싶다면 16진수 6개는 외우는 것이 좋습니다. 예를 들어 2진수 1100을 16진수로 바꾸고 싶다면 각 자리수에 가중치를 곱해서 더하면 쉽게 10진수 12로 바꿀 수 있습니다. 그리고 12에 해당하는 16진수를 생각하면 되겠지요. a가 10, b가 11 그러면 다음에 c가 12니까 c로 바꿀 수 있습니다. 그런데 바로 16진수로 바꾸고 싶다면 외워야 합니다. 6개만 외우면 되는데요 1010은 a, 1011은 b, 1100은 c, 1101은 d, 1110은 e, 1111은 f 이렇게 6개를 외우면 됩니다. 좀 쉽게 외울 수 있는 방법은... 6개 모두 앞자리는 1이죠. 그러니까 나머지 3개만 기억하면 되는데요 a의 경우 010은 모양이 10이잖아요. 그러니까 a, 1011은 오른쪽 3개가 011이니까 모양이 10진수 11이므로 b, 1100은 왼쪽 2개의 1을 더하면 2가 되니까 10진수 12가 되고 16진수로 c, 1101은 양쪽 1을 제외하고 가운데 두 개가 왼쪽 1, 오른쪽 0이니까 알파벳 D랑 비슷하잖아요. 그러니까 d, 1110은 그냥 e, 1111은 그냥 f, 그냥 그냥 이렇게 외우면 크게 어렵지 않습니다:) 연습할 때는 2진수 1010, 1011, 1100, 1101, 1110, 1111 을 놓고 16진수로 무엇인지와 10진수로 무엇인지를 생각해보면 됩니다. 즉 1101은? 그러면 D, 13 이렇게 외우는 거죠. 10진수부터 생각하면 머리속에서 계산하게 되더라고요.
팔진수 2를 이진수로 바꾸는 것도 팔진수 2를 2로 나누어 몫이 0이 될때까지 나누면서 나머지를 적으면 됩니다. 일단 팔진수 2를 2로 나누면 몫이 1이고 나머지가 0입니다. 그리고 아직 몫이 0이 아니므로 몫 1을 다시 2로 나누면 몫이 0이고 나머지가 1이 되겠지요. 결국 첫번째 나머지 0과 두번째 나머지 1을 거꾸로 적으면 10(일영)이 됩니다. 즉 팔진수 2는 이진수 10(일영)인데 세자리로 표현한다면 앞에 0을 붙여 010(영일영)로 적을 수 있는 것이지요. 팔진수 한자리는 이진수 세자리로 표현되므로 자주 바꾸다 보면 세자리는 외워지기도 합니다 :)
네 맞습니다. 하지만 외우는 것은 좀더 빨리 변환하기 위한 것이며 진법에 따라 수가 증가되는 규칙을 이해하면 시간은 걸리겠지만 진법변환은 가능합니다. 흔히 우리가 사용하는 10진법 수로 1239 다음의 수가 1240이란걸 외워서 알지 않듯이 2진법도 마찬가지입니다. 2가 되면 자릿수가 올라가므로 이진수 011 다음 수는 012인데 2에서 자릿수가 올라가므로 020이 되야겠지요. 마찬가지로 가운데 2에서 자릿수가 올라가야 하므로 결국 100이 됩니다. 이렇게 0부터 순서대로 써보면 자릿수 올라가는 규칙이 눈에 보이고 그대로 다른 진법도 적용해보면 자연스럽게 매칭이 되면서 16진수 한자리 수의 경우는 빠르게 변환이 가능하게 됩니다.
같은 질문이 다른 댓글에 있어서 답글을 복사합니다. 참고하세요~ 이진수 1111을 십진수로 바꾸면 1 X 2의3승 + 1 X 2의2승 + 1 X 2의1승 + 1 X 2의0승 = 8 + 4 + 2 + 1 = 15가 됩니다. 십진수로 15는 사과 열다섯개를 십의자리 1과 일의자리 5처럼 두 개의 단위숫자로 표시해야 합니다. 십진수는 아라비아 숫자 0~9 열개의 단위숫자를 사용하므로 사과 열다섯개를 표시할 하나의 단위숫자가 없기 때문입니다. 그러나 십육진수는 아라비아 숫자 0~9에 알파벳 A, B, C, D, E, F 여섯 개를 더해서 총 열 여섯개로 수를 표시하므로 사과 열다섯개도 하나의 단위숫자로 표시할 수 있습니다. A는 십진수 10, B는 11, C는 12, D는 13, E는 14, F는 15에 해당하므로 결국 이진수 1111은 십진수 15고 십육진수로는 F가 됩니다. 마찬가지로 이진수 1011은 십진수 11, 십육진수로 B가 되겠지요.
8진수의 각 자릿수 값을 2로 나누어 나머지를 적는 방법으로 2진수 3자리로 바꾼 후에 이어 붙이면 됩니다. 예를 들어, 8진수 175를 2진수로 바꾼다면... 1을 2진수로 바꾸면 001, 7은 111, 5는 101이므로 이어 붙이면... 001111101이 됩니다. 물론 왼쪽의 0 두 개는 의미가 없으므로 1111101로 적으면 되겠네요.
팔진수는 양을 0부터 7까지 8개의 수로 표현하는 것이고 이진수는 0과 1 두 개의 수로만 표현합니다. 따라서 이진수로 여덟 개를 표현한다면 한 자리나 두 자리 수로는 힘들고 세 자리의 수가 필요하지요. 즉 000, 001, 010, 011, 100, 101, 110, 111 이렇게 0부터 7까지 표현할 수 있습니다. 근데 000이나 001, 010, 011은 맨 앞의 00이나 0이 필요가 없습니다. 즉 0, 1, 10, 11 등으로 표현해도 되는 것이지요. 그런데 팔진수 두 자리 이상의 수를 이진수로 바꿀 때는 반드시 세 자리의 이진수로 바꿔야 합니다. 예를 들어 팔진수 52를 이진수로 바꿀 때 5는 101로 2은 10로 바꾸면 이진수 10110이 되는데요. 이러면 자릿수가 하나 줄어들면서 가중치가 다르게 계산되고 결국 다른 값이 됩니다. 따라서 5는 101로 2은 010로 바꾸어 101010으로 바꿔야 바른 이진수 값이 됩니다. 물론 가장 왼쪽의 0들은 무의미 하니 생략이 가능합니다. 예를 들어 팔진수 12는 001010인데 이 때 왼쪽 두 개의 0은 생략해서 1010으로 바꿀 수 있습니다.
이진수는 0과 1만을 사용해서 수를 표현하죠. 만약 세 자릿수를 이진수로 모두 표현하면 다음과 같습니다. 000 ---> 요건 십진수로 0 001 ---> 요건 000에 1을 더한 수, 십진수로 1 010 ---> 요건 001에 1을 더한 수, 001에 1을 더하면 002가 될 수 없죠. 따라서 한 자릿수가 올라가서 010이죠. 011 ---> 요건 010에 1을 더한 수, 십진수로 3 100 ---> 요건 011에 1을 더한 수, 십진수로 4 101 ---> 십진수로 5 110 ---> 십진수로 6 111 ---> 십진수로 7 세 자릿수의 이진수는 이 여덟가지 밖에 없습니다. 십진수로 8은 111에 1을 더한 값인데 각 자릿수에 모두 올림이 발생해서 네 자릿수의 이진수 1000이 되니까요. 그런데 이 세 자릿수의 이진수들은 모두 한 자릿수의 팔진수로 바꿀 수 있습니다. 팔진수는 아라비아 숫자 0부터 7까지 여덟개로 수를 표현하니까요. 즉 다음과 같습니다. 이진수 000 ---> 팔진수로 0 이진수 001 ---> 팔진수로 1 이진수 010 ---> 팔진수로 2 이진수 011 ---> 팔진수로 3 이진수 100 ---> 팔진수로 4 이진수 101 ---> 팔진수로 5 이진수 110 ---> 팔진수로 6 이진수 111 ---> 팔진수로 7 결국 이진수 011은 팔진수 3으로 쓸 수 있습니다. 자 그러면 반대로 팔진수 7은 이진수로 111이 되겠지요. 수학적으로 계산할 필요없이 팔진수 한 자릿수는 이진수 세 자릿수로 똑같이 쓸 수 있다. 똑 같이 쓰면 된다! 고 생각하면 됩니다. 그럼 팔진수 277을 이진수로 바꿔볼까요? 가장 왼쪽 팔진수 2는 이진수로 010 그 다음 팔진수 7는 이진수로 111 마지막 팔진수 7은 이진수로 111 이걸 그대로 적으면 010111111 이 됩니다. 이 때 가장 왼쪽의 0은 의미가 없으므로 10111111 요렇게 적으면 됩니다.
16은 2의 4승이라서 이진수 4자리는 십육진수 한자리 수로 표현할 수 있습니다. 반대로 십육진수 한자리는 이진수 4자리로 바꿀 수 있겠지요. 결국 십육진수 53에서 5는 이진수 0101 3은 0011로 바꿀 수 있고 두 수를 붙이면 이진수 01010011이 됩니다. 처음 왼쪽의 0은 없어도 같은 값이지만 꼭 8개의 수로 표현하라면 0을 붙여야 맞겠지요.
c언어 코드에서 십진수, 팔진수, 십육진수를 사용할 수 있는데요. 값이 쉽게 와 닿지 않는 팔진수, 십육진수를 쓰는 이유는 그 값이 메모리에 어떤 이진수의 상태로 저장되는지를 코드에 표현할 수 있기 때문입니다. 예를 들어 십육진수 상수 0xb7 는 메모리에 00000000 00000000 00000000 10110111 이렇게 4바이트로 저장되겠구나 하고 쉽게 알 수 있습니다. 그래서 비트 연산을 했을 때 그 결과도 쉽게 알 수 있고요. 물론 이진수 상수를 사용하면 더 좋겠지만 값이 크면 코드가 길어지고 오히려 한 눈에 잘 안들어올 듯 합니다. 사진수도 특별히 써야할 이유가 없지 않을까 싶네요. 보통 코드에서는 16진수를 많이 씁니다.
2진법을 8진법으로 바꾼다면 오른쪽부터 3자리씩 끊어서 3자리 마다 8진수 한자리로 바꾸면 됩니다. 16진수로 바꿀때는 4자리씩 끊어 주고요. 예를 들어, 2진수 111101110001 의 경우는 8진수로 바꿀 때 오른쪽부터 3개씩 끊어서 8진수 한자리로 바꾸면 됩니다. 가장 오른쪽 3자리부터 해보면 001 -> 8진수 1, 110 -> 8진수 6, 101 -> 8진수 5, 111 -> 8진수 7 이므로 8진수 7561이 됩니다. 여기서 2진수 세자리를 8진수로 바꿀 때 10진수로 바꿀 때처럼 오른쪽부터 2의 0승부터 곱해서 더해주면 됩니다. 101은 1 X 2의 2승, 0 X 2의 1승, 1 X 2의 0승 으로 계산하면 5가 됩니다. 16진수로 바꿀 때는 4자리씩 끊어서 마찬가지 방법으로 바꾸면 됩니다.
진법은 수를 나타내는 단위 숫자를 몇 개 쓰느냐에 따라 이진법, 팔진법, 십진법, 십육진법 등이 있습니다. 즉 이진법은 0과 1 두 개만 사용하고, 팔진법은 0~7 여덟개, 십진법은 0~9 열 개를 사용합니다. 수를 표현할 때 쓰는 아라비아 숫자가 0부터 9까지 열 개 있으므로 이진법, 팔진법, 십진법은 모두 아라비아 숫자만 가지고 표현할 수 있으나 십육진법은 아라비아 숫자 열 개로 부족하므로 알파벳 a~f 여섯개를 더 사용합니다.
@@동정-f9g 아라비아 숫자는 수를 표현할 때 쓰는 단위숫자(digit)를 뜻합니다. 10, 11 등은 단위숫자로 만든 수(number)라고 생각하시면 돼요. a~z는 알파벳이고 알파벳을 조합해서 단어를 만들 듯 몇 개의 단위숫자를 가지고 수를 표현 하느냐가 진법이라고 생각하시면 됩니다.
8진법은 어떤 양을 8개씩 묶는 것이라 8로 나누어 떨어지지 않는 경우 나머지가 생깁니다. 당연히 나머지는 1부터 7까지 남게 됩니다. 예를 들어 십진수 23을 팔진수로 바꾼다면 사과가 스물 세 개 있는데 8개씩 두번 묶으면 몇 개가 남는지를 확인해서 수로 나타내면 됩니다. 물론 두 묶음과 7개가 남으니 팔진수 27이 됩니다. 결국 어떤 진법의 수든 8진수로 바꾸면 각 단위의 수는 0~7까지가 됩니다.
십육진수 b가 십진수로 11인 것은 외워야 합니다. 사과 일곱개가 아라비아 숫자 7임을 외우듯이 사과 열개, 열한개, 열두개... 열다섯개를 십육진수 a, b, c, d, e, f로 표현함을 외워야 합니다. b가 십진수로 11임을 알면 이진수 1011로 바꿀수도 있고 팔진수 13으로도 바꿀 수 있습니다.
이 영상은 프로그래밍 언어(C언어) 공부에 필요한 지식을 전달하기 위해서 2진법, 8진법, 16진법을 설명했습니다. 3진법도 개념은 같으니 변환방법 등은 응용하시면 될 것 같습니다. 즉 3진수는 0, 1, 2로만 만들고, 삼진수 120은 1 x 3의2승 + 2 x 3의1승 + 0 x 3의0승 이렇게 십진수로 바꿀 수 있고, 십진수를 삼진수로 만드는 것도 3으로 나누어 몫이 0이 될때까지 나머지를 쭉 적으면 됩니다.
소수점이 있는 경우 소수점을 기준으로 왼쪽으로는 2의 0승, 2의 1승, 2의 2승 ... 이렇게 곱해서 더해주면 되고 소수점 오른쪽으로는 2의 -1승(이분의 1), 2의 -2승(사분의 일), 2의 -3승(팔분의 일)... 이렇게 곱해서 더하면 됩니다. 0.1001은 소수점 왼쪽으로는 수가 없으므로 그냥 0, 오른쪽으로는 1 X 1/2 + 0 X 1/4 + 0 X 1/8 + 1 X 1/16 = 0.5 + 0 + 0 + 0.0625 = 0.5625 이렇게 되네요.
이진수 1111을 십진수로 바꾸면 1 X 2의3승 + 1 X 2의2승 + 1 X 2의1승 + 1 X 2의0승 이고 2의 거듭제곱을 계산하면 1 X 8 + 1 X 4 + 1 X 2 + 1 X 1 이 됩니다. 곱하기와 더하기를 모두 계산하면 십진수로 15가 되지요. 십진수 15는 십육진수로 f이므로 결국 이진수 1111은 십육진수 f가 됩니다. 십육진수는 수를 표현하는 단위 숫자가 16개가 있는데요. 0부터 9까지 아라비아 숫자 10개와 알파벳 a, b, c, d, e, f 이렇게 6개를 사용합니다. 0부터 9까지는 십진수나 십육진수나 같은 단위 숫자를 사용하지만 십진수 10부터는 십육진수 a, 십진수 11은 십육진수 b, 12는 c, 13은 d, 14는 e, 15는 f가 됩니다.
성이름 하나의 비트가 2가지 상태를 나타내므로 비트가 2개 있으면 4가지 상태를 나타낼 수 있지요. 비트가 3개면 8가지, 비트가 4개면 16가지. 따라서 10가지 상태를 서로 다른 비트열로 표현하려면 최소 4개의 비트가 필요하겠네요. 비트에 대해 좀더 알고 싶으시면 아래 ‘비트가 뭡니까?’ 영상을 참고하세요~ ruclips.net/video/45OGCTVecuA/видео.html
제가 적어 드린 것이 외워야 할 표는 아니고요. 이해를 위해 적어드린 겁니다. 우리가 1329 다음 수가 1330임을 외워서 아는 것은 아니지요. 10진수는 9에 1을 더하면 한 자릿수가 올라가서 10이 되는 것을 알기 때문에 더 큰 자릿수도 쉽게 계산할 수 있습니다. 2진수로 0과 1만 사용하므로 1다음에 2가 되지않고 한 자리가 올라가므로 10이 됨을 이해해야 합니다. 8진수나 16진수도 마찬가지고요. 일단 2진수로 바꿀 수 있으면 맨 오른쪽 부터 3개씩 끊어서 8진수 한자리로 바꾸면 8진수, 4개씩 끊어서 16진수 한자리로 바꾸면 16진수가 됩니다.
소수점을 기준으로 왼쪽으로 3개씩, 오른쪽으로 3개씩 끊어줍니다. 예를 들어 11001.11011 이면 11/001.110/11 --> 31.63(8진수) 이렇게 됩니다. 앞에서부터 3개씩 끊으면 61.63(8진수)이 되므로 값이 달라지지요. 물론 정수부분의 숫자가 3의 배수개이면 앞에서 끊나 소수점을 기준으로 왼쪽으로 끊나 마찬가지입니다.
@@user-mc3bl3ym8j 십육진수를 십진수로 바꾸는 것은 각 단위숫자에 십육의 거듭제곱을 곱해서 더하면 됩니다. 십육진수 ABC는 A x 16의제곱 + B x 16 + C = 10 x 256 + 11 x 16 + 12 = 2560 + 176 + 12 = 2748이 됩니다. 각 단위숫자를 이진수로 바꾸고 2의 거듭제곱의 가중치를 곱해서 더해도 됩니다. 즉 ABC는 이진수로 1010 1011 1100 이고 1 x 2의11승 + 1 x 2의9승 + 1 x 2의7승 + 1 x 2의5승 + 1 x 2의4승 + 1 x 2의3승 + 1 x 2의2승 = 2048 + 256 + 128 + 32 + 16 + 8 + 4 = 2748이 됩니다.
네 생각하신 것이 맞습니다. 143을 한 바이트의 데이터로 표현할 때 가장 왼쪽의 비트가 1로 바뀌므로 음수로 처리됩니다. 즉 저장은 되지만 그 값을 사용할 때 음수로 인식하므로 143이 0보다 크냐고 하면 결과는 거짓이 됩니다. 4비트를 예를 들어 설명해보면 비트가 두 가지 상태를 나타내므로 4비트면 총 2의 4승 해서 16가지가 됩니다. 이 16가지 경우의 수를 모두 양수를 표현하는 용도로 쓴다면 0부터 15까지가 되겠지요. 하지만 음수까지 표현한다면 8가지는 양수표현, 8가지는 음수표현으로 쓰는 것이 맞습니다. 여기서 어떤 비트열을 양수로 하고 어떤 비트열을 음수로 할지 결정해야 하는데 가장 왼쪽의 비트를 기준으로 0이면 양수, 1이면 음수로 사용하도록 약속한 것이지요. 결국 양수 비트열 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111 이렇게 8가지가 되고 음수는 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 이렇게 8가지가 됩니다. 그래서 만약 컴퓨터에서 코딩을 할 때 10을 사용하면 4비트에서 1010이 되고 가장 왼쪽의 비트가 1이므로 이 값은 음수로 처리되는 것이지요. 여기서 어떤 음수인지는 2의 보수로 판단합니다. 1010의 2의 보수가 0110이므로 이 값은 10진수로 6이고 따라서 -6으로 처리되는 것이지요. 따라서 코딩을 할 때 10을 사용하면 안됩니다. 그 범위가 4비트이면 -8(비트열 1000)부터 0을 포함하여 7(비트열 0111)까지가 됩니다. 질문하신대로 8비트로 표현한다면 2의 8승은 256이므로 절반으로 나누면 128이고 따라서 8비트에서 표현할 수 있는 값의 범위는 -128 ~ 127까지 됩니다. 결국 143은 부호비트가 1로 바뀌는 데이터이므로 음수로 처리되는 것이지요.
십진수 7을 이진수로 바꾸면 111이 되는데요. 망망님 답글을 거꾸로 계산하면... 7을 2로 나눈 나머지가 가장 오른쪽의 1이 됩니다. 그리고 몫이 3인데 이 값을 다시 2로 나눈 나머지가 오른쪽에서 두 번째 1이 되지요. 마지막으로 3을 2로 나눈 몫이 1인데 이 값을 2로 나눈 나머지가 1이므로 이 값이 가장 왼쪽의 1이 됩니다. 이렇게 몫이 0이 될때까지 2로 나누면서 나머지를 적으면 이진수로 바꿀 수 있습니다.
알고 계신대로 '나머지가 나누는 수보다 작을때까지 나누는 경우'에서 나머지는 몫을 의미하는 것이겠죠? 이 경우 더이상 나누어지지 않는 마지막 몫까지 2진수에 포함시킵니다. 예를 들어 십진수 3을 이진수로 바꿀 때 2로 나눈 몫은 1이고 나머지는 1이지요. 몫이 2(나누는 수)보다 적으므로 더 이상 나누지 않고 끝냅니다. 이 때 이진수는 몫 1과 나머지 1을 적어서 11이 됩니다. 영상에서는 몫 1을 2로 또 나누어서 몫을 0으로 만들고 나머지 1을 포함시켜 이진수 11을 만든 겁니다. 결국 같은 방법인데요. 반복적으로 나누어 나머지를 사용하는 방법을 일관성 있게 설명하기 위해서 마지막에 몫이 0이 될때까지 한번 더 나누는 방법으로 설명했습니다.
만약 8진수라면 각 자릿수를 2진수 3자리로 바꾸어 2진수를 먼저 만들고요. 그 다음 2진수의 오른쪽부터 4자리씩 끊어서 16진수로 바꿉니다. 즉 왼쪽부터 바꾸면 1 -> 001 0 -> 000 7 -> 111 0 -> 000 0 -> 000 1 -> 001 이걸 죽 이으면 001000111000000001 이렇게 되지요. 이 2진수를 오른쪽에서 4자리씩 16진수로 바꾸면 됩니다. 즉 오른쪽부터 4개씩 16진수 한자리로 바꾸면 0001 -> 1 0000 -> 0 1110 -> e 1000 -> 8 이걸 쭉 이으면 8e01이 되겠네요. 2진수의 왼쪽에 남는 00은 의미가 없으니 바꾸지 않아도 됩니다. 만약에 질문하신 수가 10진수라면 8로 나누어 8진수로 먼저 바꾸고 같은 방법을 쓰시면 됩니다.
이진수를 팔진수로 바꿀 때는 소수점을 기준으로 좌우로 세 자리씩 끊어서 바꿉니다. 이진수 1100에 소수점을 표시하면 1100.0이므로 결국 오른쪽에서 왼쪽으로 세 자리씩 바꿉니다. 가장 오른쪽의 세 자리 100은 1 X 2의2승 + 0 X 2의1승 + 0 X 2의0승 = 4가 됩니다. 그리고 1100에서 가장 왼쪽의 1은 1 X 2의0승 = 1이므로 결국 팔진수 14가 되겠네요.
이렇게 한번 생각해볼까요. 가진돈 X 2 이건 내가 가진돈을 두 배로 만들겠다는 거죠. 그 결과에 또 두 배를 한다면... 가진돈 X 2 X 2 이렇게 되죠. 만약 계속 두 배씩 다섯번을 불린다면 가진돈 X 2 X 2 X 2 X 2 X 2 이렇게 되는데요. 뒤에 2를 다섯번 곱한 것을 간단히 2의 5승 이렇게 표현한다면.... 2의 1승은 가진돈을 딱 한번 두 배 하겠다는 뜻이되고... 그렇다면 2의 0승은? 가진돈을 그대로 두겠다는 뜻이 되겠지요. 따라서 2의 0승은 1이 되어야 합니다. 3을 곱하는 경우나 7을 곱하는 경우나 모두 마찬가지겠지요. 따라서 어떤 수의 0승은 1로 생각하면 됩니다.
소수점이 있는 실수의 경우는 소수점을 기준으로 왼쪽은 정수부, 오른쪽은 소수부로 나누어 계산합니다. 정수부는 2의 거듭제곱을 곱해서 더하고, 소수부는 2의 음의 거듭제곱 즉 2의 -1승, 2의 -2승... 이렇게 계산합니다. 전체를 계산하면 1 X 2 + 0 X 1 (점찍고) 1 X 0.5 + 0 X 0.25 + 1 X 0.125 + 1 X 0.0625 이걸 계산하면 십진수 소수가 나오겠네요.
7:58에 16의 1승을 16의 0승으로 잘못 얘기하고 있습니다. 이어서 16의 0승이 4라고 얘기하는 부분은 16의 0승이 1이므로 4와 곱해서 4가 된다는 얘기를 줄여서 설명하고 있습니다.
시간은 소중해요
2진법 4:07
8진법 5:18
10진법 2:22
16진법 6:50
10진법 > 2진법 10:08
10진법 > 8진법 12:10
10진법 > 16진법 13:17
2진법 > 8, 16진법 20:42
46분전 ㄷ
와 뭐예요 감사해요 진짜
저걸 언제 다 보나 생각하고 있었는데 ㅠㅠ
@@괙괙-v2k ^^7
ㄱㅅㄱㅅ
@@괙괙-v2k 22분인데?
내일 정보시험 봐서 벼락치기로 진법 영상 보는데 이해가 쏙쏙되다 못 해 뇌에 콕콕 박히는 수준이네요 ㅠㅠ 감사합니다 선생님 ⭐️⭐️⭐️
와 선생님 덕분에 제 목숨 건졌어요 진짜 감사합니다
제가 큰 일 한건가요? ㅎ
진짜 설명 원탑 3년전 강의인데도 너무 잘 들었습니다 이해 한번에 했어요!
내일 정보수행인데 진짜 감사합니다ㅠㅠ
대학 교수님이 2진수8진수 변환시키는거 이해 안되서 이 강의 들었는데 이해 너무 잘되네요ㅠㅠ 감사합니다
학교 수업은 제한된 시간에 정해진 진도를 나가야 하므로 자세한 설명이 어려운 경우가 많지요. 오프라인 강의할 때는 그런 점이 항상 아쉬웠는데 이렇게 도움이 되었다는 댓글을 보니 정말 기쁘네요:)
책으로 공부할땐 이해 안가던데 쌤이 예기해주니까 바로 이해되네요 감사해용
아무래도 설명을 들으면 좀 더 낫죠:)
너무너무 감사드립니다. 지금까지 봤던 강의 중에 제일 쉽게 풀이가 되어서 한번에 이해가 됐네요. 진짜 감사드려요
영상을 집중해서 열심히 들으신 결과라 생각합니다:)
잘보고갑니다 몇번을 공부해도 시간지나면 다 까먹어서 매번 인터넷에 검색해보는데 영상하나로 다 해결되서 너무 좋네요 설명도 정말 이해하기 쉬워요
네 고맙습니다. 까먹으면 또 보면 되지요 :)
너무 감사합니다 저도 유튜브 예전에 한적이 있어서 그런데 지금 구독자 많이 없을때 좌절하지 마시고 지금 컨텐츠 유지하시면 선생님께 도움받는 사람들이 모여 큰 채널이 될겁니다!
네 조언 고맙습니다. 채널이 커지면 좋겠지만 제 영상이 도움이 되는 분들이 있다면 앞으로도 계속 만들 생각입니다. 그리고 이렇게 응원해주시니 더 힘이 납니다. 고맙습니다 :)
내일 전공 시험을 앞둔 대학생입니다.. 선생님이 저를 살리셨습니다 이해가 쏙쏙 되네요 너무 감사합니다
혼자 공부하는 c언어 책 사서 잘 자습하고 있어요,감사합니다.
카페와서 질문도 많이 해주세요 :)
@@clecture 네
아 너무 감사합니다! 야심차게 컴퓨터를 배우기 시작했는데 25년만에 수학을 하려고 하니 너무 막막하던차에 선생님 강의를 들으니 신기하게도 예전에 배웠던 수학이 기억이 나요. 너무 너무 감사합니다!
25년만에 다시 기억나는 건 공부를 열심히 하셨기 때문일거에요. 응원합니다.
감사합니다!!! 파이썬 배우면서 진법이 이해가 안 됐는데 이거보고 바로 이해했어요!!!
기본부터 제대로 공부하시나 보네요. 도움이 되셨다니 뿌듯합니다 :)
수행평가 때문에 고민이었는데 해결됐어요 ㅠㅠ 싸랑해요 쌤
고맙습니다 :) 저도 하트 눌렀어요 ㅎ
다른 영상 5개보다가 왔습니다... 지금은 6번째... 이해해버렸습니다... 감사합니다. 지렸다;
두드리면 열린다고 했나요. 노력했으니 이해하신겁니다 :)
@@clecture 코딩 국비지원 과정 2주차입니다ㅎ 힘들면서도 매일매일 설레이네요 유익한 영상 감사합니다!
감사합니다 어려웠는데 덕분에 잘 배워 갑니다
댓글 고맙습니다 :)
님들 십진수 이진수 변화 이렇게 하면 여러번 하니 이렇게 하세용
1X2X2X2X2=16
1X2X2x2=8
1X2X2=4
1X2=2
1=1
이렇게 되니까 10011이라 하면 밑으로 순서대로 해가지고 1+2+16 해가지고 하면 19가 되니까 요런식으로 하면 쉬우니까 한번 해보세요
좋은 팁이네요 :)
학교에서 배웠는데 이해가 안돼서 보니 정말 깔끔하게 이해가 잘 되네요 감사합니다😭😭
이진법 이해 안 가서 헤맸는데 여기서 깨닫고 갑니다.. 가암사합니다 ㅜㅜ
보람 있네요. 고맙습니다 :)
감사합니다 ㅠㅠ 진법 몰라서 대학교 강의를 전혀 이해못하고 멍 때리다 왔는데 덕분에 어떻게 해야되는지 감이 잡힐 것 같네요...
나의 생각.
요즘 코로나 과정을 보면 인원수에 따라 똑같은 조건속에서 알수 있는게 꼭 진법 같지요.
경제적으로 분석.행정부 입법부 사법부는 어떻게 할까.데칼코마니.거울수.0.1에 따른 분리시 박자에 따라 나누면 그에 조건에 따라 가능한 수.의료와 비슷하네.
진짜 감사합니다 이해 너무 잘 됩니다
기영님이 이해를 너무 잘 하신겁니다 :)
감사합니다 진법 메커니즘에 대해서 잘 모르고 있었는데 이해 했습니다 ! c언어 공부하는데 도움이 될 것 같아요
허어어억...감사합니다..한번밖에안들엇는데 이해됫습니다!!
한번 듣고 이해하는 것이 능력인 듯 합니다 :)
감사합니다 컴활하는중에 혼자서 이해하는덴 한계가 있었는데 덕분에 바로 이해하고 가네요! 좋은영상 너무 감사해요
17:30부터 선생님 어떻게 B F를 어떻게 그렇게 빠르게 바로바로 나오게 하셨어요? 아... 다 이해가는데 저 부분만 이해가 안가요
이해가 안가는 것이 당연합니다! 이해하는 것이 아니고 외워야 하는 것이니까요ㅜ. 각 진법간 변환은 이해하고 있다면 시간이 걸리더라도 할 수 있습니다. 하지만 빠르게 하고 싶다면 16진수 6개는 외우는 것이 좋습니다. 예를 들어 2진수 1100을 16진수로 바꾸고 싶다면 각 자리수에 가중치를 곱해서 더하면 쉽게 10진수 12로 바꿀 수 있습니다. 그리고 12에 해당하는 16진수를 생각하면 되겠지요. a가 10, b가 11 그러면 다음에 c가 12니까 c로 바꿀 수 있습니다. 그런데 바로 16진수로 바꾸고 싶다면 외워야 합니다. 6개만 외우면 되는데요 1010은 a, 1011은 b, 1100은 c, 1101은 d, 1110은 e, 1111은 f 이렇게 6개를 외우면 됩니다. 좀 쉽게 외울 수 있는 방법은... 6개 모두 앞자리는 1이죠. 그러니까 나머지 3개만 기억하면 되는데요 a의 경우 010은 모양이 10이잖아요. 그러니까 a, 1011은 오른쪽 3개가 011이니까 모양이 10진수 11이므로 b, 1100은 왼쪽 2개의 1을 더하면 2가 되니까 10진수 12가 되고 16진수로 c, 1101은 양쪽 1을 제외하고 가운데 두 개가 왼쪽 1, 오른쪽 0이니까 알파벳 D랑 비슷하잖아요. 그러니까 d, 1110은 그냥 e, 1111은 그냥 f, 그냥 그냥 이렇게 외우면 크게 어렵지 않습니다:) 연습할 때는 2진수 1010, 1011, 1100, 1101, 1110, 1111 을 놓고 16진수로 무엇인지와 10진수로 무엇인지를 생각해보면 됩니다. 즉 1101은? 그러면 D, 13 이렇게 외우는 거죠. 10진수부터 생각하면 머리속에서 계산하게 되더라고요.
@@clecture 아 ㅎㅎㅎ 선생님 정말 감사합니다 좋은 강의와 좋은 답변주셔서
@@clecture 저도 이부분이 궁금해서 몇번을 돌려봤는데 댓글보고 완전 해결됐어요 정말 감사합니다!!
학교 시험으로 나오는 과목이였는데 이해가 안돼서 포기할까 생각했는데 우연히 영상을 찾아봤는데 너무 이해하기쉽게 알려주셔서 90점정도는 받을수있을것같습니다 정말 감사합니다!
100점 받으셔야죠 :)
????? 저희 물리학교수님이랑 말투 억양 목소리 완전 100%똑같아요. 말 끝에 약간 올리는것 톤하고 약간 긁는 목소리까지 완전 똑같... 혹시 저희 교수님이세요..? 저 진짜 듣자마자 놀랐어요 ㅋㅋㅋㅋㅋㅋㅋ 하 잘 들었습니다ㅠㅠ
교수님 좋은 분이시죠? :)
자격증 이번에 무조건 무조건 따야되는데 영상이 너무 도움되네요
자격증 꼭 따셨으면 좋겠네요. 아님 벌써 따셨을지도 :)
대학강의가 너무... 빨랐는데 이렇게 설명을 잘 해주시니 정말 감사드립니다.
그냥 지나치지 않고 이렇게 댓글 남겨주시니 기분이 좋습니다 :)
혹시 8진수를 2진수로 바꿀때 2가 010이 되는 것은 표를 외워야하는건가요? 아니면 다른 방법으로 하신건가용??
팔진수 2를 이진수로 바꾸는 것도 팔진수 2를 2로 나누어 몫이 0이 될때까지 나누면서 나머지를 적으면 됩니다. 일단 팔진수 2를 2로 나누면 몫이 1이고 나머지가 0입니다. 그리고 아직 몫이 0이 아니므로 몫 1을 다시 2로 나누면 몫이 0이고 나머지가 1이 되겠지요. 결국 첫번째 나머지 0과 두번째 나머지 1을 거꾸로 적으면 10(일영)이 됩니다. 즉 팔진수 2는 이진수 10(일영)인데 세자리로 표현한다면 앞에 0을 붙여 010(영일영)로 적을 수 있는 것이지요. 팔진수 한자리는 이진수 세자리로 표현되므로 자주 바꾸다 보면 세자리는 외워지기도 합니다 :)
덕분에 오늘 정보시험 1등급나왔네요 ㅎ
축하합니다 :)
55년동안 이걸 몰라서 c언어 공부 포기했는데 선생님 덕분에 명확히 알게 되었습니다. 책도 구매했습니다. 감사합니다~
좋은 강의 감사합니다 😊
기분 좋은 댓글 고맙습니다 :)
학교에서 쌤이가르쳐주실땐 이해안갔는데 이제 이해했네요. 감사합니당. ㅎㅎ
학교에서 한 번 들어서 더 잘 이해가 갔을거에요 :)
학교에서 여러차시에 걸쳐서 배웟는데도 이해안됏던 걸 시험 하루전에 이 영상 2배속으로 보고 20분도 안 돼서 이해했습니다
생명의 은인..내일 시험인데 감사합니다😍
아직 살아계신거죠?:)
@@clecture 또 다음주 시험이네요ㅋㅋ ㅠㅠ
정말 싑게 이해됐어요 정말 땡큐배리감사감사~
저번학기에 덕분에 정보 1등급했습니다!! 감사합니다
본인이 열심히 공부한 결과겠지요. 그래도 도움이 되었다니 마음이 뿌듯합니다 :) 고맙습니다.
20:50분부터는 외워야 하는건가요??
네 맞습니다. 하지만 외우는 것은 좀더 빨리 변환하기 위한 것이며 진법에 따라 수가 증가되는 규칙을 이해하면 시간은 걸리겠지만 진법변환은 가능합니다. 흔히 우리가 사용하는 10진법 수로 1239 다음의 수가 1240이란걸 외워서 알지 않듯이 2진법도 마찬가지입니다. 2가 되면 자릿수가 올라가므로 이진수 011 다음 수는 012인데 2에서 자릿수가 올라가므로 020이 되야겠지요. 마찬가지로 가운데 2에서 자릿수가 올라가야 하므로 결국 100이 됩니다. 이렇게 0부터 순서대로 써보면 자릿수 올라가는 규칙이 눈에 보이고 그대로 다른 진법도 적용해보면 자연스럽게 매칭이 되면서 16진수 한자리 수의 경우는 빠르게 변환이 가능하게 됩니다.
감사합니다.
정말 너무 유익해버렷..!
내신 공부 진법 하나도 몰랐는데 사람 구실 하겠습니다 감사해요
그래주면 정말 고마울 것 같아요 :)
@@clecture 덕분에 진수 관련 문제는 다 맞쳤어요 감사해요 ㅋㅋ
깔끔하네요
17:38 부분에 알파벳으로 바뀌는 부분 이해 안되는데 설명해주세요….
같은 질문이 다른 댓글에 있어서 답글을 복사합니다. 참고하세요~
이진수 1111을 십진수로 바꾸면 1 X 2의3승 + 1 X 2의2승 + 1 X 2의1승 + 1 X 2의0승 = 8 + 4 + 2 + 1 = 15가 됩니다. 십진수로 15는 사과 열다섯개를 십의자리 1과 일의자리 5처럼 두 개의 단위숫자로 표시해야 합니다. 십진수는 아라비아 숫자 0~9 열개의 단위숫자를 사용하므로 사과 열다섯개를 표시할 하나의 단위숫자가 없기 때문입니다. 그러나 십육진수는 아라비아 숫자 0~9에 알파벳 A, B, C, D, E, F 여섯 개를 더해서 총 열 여섯개로 수를 표시하므로 사과 열다섯개도 하나의 단위숫자로 표시할 수 있습니다. A는 십진수 10, B는 11, C는 12, D는 13, E는 14, F는 15에 해당하므로 결국 이진수 1111은 십진수 15고 십육진수로는 F가 됩니다. 마찬가지로 이진수 1011은 십진수 11, 십육진수로 B가 되겠지요.
와 바로 이해했어요 감사합니다.
와ㅏ 진짜 감사합니다ㅏㅏㅏ!!!!
댓글 진짜~ 고맙습니다!!
16:45 8진수를 2진수로 바꾸는법 아시는분... 암산 너무하십니다 ㅠㅠㅠㅠㅠ
8진수의 각 자릿수 값을 2로 나누어 나머지를 적는 방법으로 2진수 3자리로 바꾼 후에 이어 붙이면 됩니다. 예를 들어, 8진수 175를 2진수로 바꾼다면... 1을 2진수로 바꾸면 001, 7은 111, 5는 101이므로 이어 붙이면... 001111101이 됩니다. 물론 왼쪽의 0 두 개는 의미가 없으므로 1111101로 적으면 되겠네요.
8진수 2진수로 바꿀때 왜 2가 010이 되나요??
팔진수는 양을 0부터 7까지 8개의 수로 표현하는 것이고 이진수는 0과 1 두 개의 수로만 표현합니다. 따라서 이진수로 여덟 개를 표현한다면 한 자리나 두 자리 수로는 힘들고 세 자리의 수가 필요하지요. 즉 000, 001, 010, 011, 100, 101, 110, 111 이렇게 0부터 7까지 표현할 수 있습니다. 근데 000이나 001, 010, 011은 맨 앞의 00이나 0이 필요가 없습니다. 즉 0, 1, 10, 11 등으로 표현해도 되는 것이지요. 그런데 팔진수 두 자리 이상의 수를 이진수로 바꿀 때는 반드시 세 자리의 이진수로 바꿔야 합니다. 예를 들어 팔진수 52를 이진수로 바꿀 때 5는 101로 2은 10로 바꾸면 이진수 10110이 되는데요. 이러면 자릿수가 하나 줄어들면서 가중치가 다르게 계산되고 결국 다른 값이 됩니다. 따라서 5는 101로 2은 010로 바꾸어 101010으로 바꿔야 바른 이진수 값이 됩니다. 물론 가장 왼쪽의 0들은 무의미 하니 생략이 가능합니다. 예를 들어 팔진수 12는 001010인데 이 때 왼쪽 두 개의 0은 생략해서 1010으로 바꿀 수 있습니다.
감사합니다 정보시험 8시간 전 훌륭한선택이였습니다^^
시험 잘 보셨나요? 정말 좋은 선택이었는지 궁금해지네요 :)
6:32 8에 3승이 64이애요? 왼쪽에 2진법 2의3승이 8인데 햇갈려요 알려주세여
8의 3승은 512입니다. 영상에서도 512로 설명하고 있고요. 8의 제곱이 64가 되겠지요.
16:43 277의 8진수를 2진수로 바꿀 때 세세한 풀이가 궁금합니다. 이해가 되지 않아서요 어떻게 풀이하는지..
이진수는 0과 1만을 사용해서 수를 표현하죠. 만약 세 자릿수를 이진수로 모두 표현하면 다음과 같습니다.
000 ---> 요건 십진수로 0
001 ---> 요건 000에 1을 더한 수, 십진수로 1
010 ---> 요건 001에 1을 더한 수, 001에 1을 더하면 002가 될 수 없죠. 따라서 한 자릿수가 올라가서 010이죠.
011 ---> 요건 010에 1을 더한 수, 십진수로 3
100 ---> 요건 011에 1을 더한 수, 십진수로 4
101 ---> 십진수로 5
110 ---> 십진수로 6
111 ---> 십진수로 7
세 자릿수의 이진수는 이 여덟가지 밖에 없습니다. 십진수로 8은 111에 1을 더한 값인데 각 자릿수에 모두 올림이 발생해서 네 자릿수의 이진수 1000이 되니까요. 그런데 이 세 자릿수의 이진수들은 모두 한 자릿수의 팔진수로 바꿀 수 있습니다. 팔진수는 아라비아 숫자 0부터 7까지 여덟개로 수를 표현하니까요. 즉 다음과 같습니다.
이진수 000 ---> 팔진수로 0
이진수 001 ---> 팔진수로 1
이진수 010 ---> 팔진수로 2
이진수 011 ---> 팔진수로 3
이진수 100 ---> 팔진수로 4
이진수 101 ---> 팔진수로 5
이진수 110 ---> 팔진수로 6
이진수 111 ---> 팔진수로 7
결국 이진수 011은 팔진수 3으로 쓸 수 있습니다. 자 그러면 반대로 팔진수 7은 이진수로 111이 되겠지요.
수학적으로 계산할 필요없이 팔진수 한 자릿수는 이진수 세 자릿수로 똑같이 쓸 수 있다. 똑 같이 쓰면 된다! 고 생각하면 됩니다. 그럼 팔진수 277을 이진수로 바꿔볼까요?
가장 왼쪽 팔진수 2는 이진수로 010
그 다음 팔진수 7는 이진수로 111
마지막 팔진수 7은 이진수로 111
이걸 그대로 적으면 010111111 이 됩니다. 이 때 가장 왼쪽의 0은 의미가 없으므로 10111111 요렇게 적으면 됩니다.
@@clecture 저두 여기서 막혔는데 풀이보고 바로 이해했어요! ㅎ
학교에서 교수님이 가르쳐주실때 이해가 안가서 이 영상들어오게 되었는데 완벽히 이해됐습니다 감사합니다!!
'53’ (16진수)를 >> (2진수)로 변환하면 몇인가요? 풀이과정도 알려주시면 좋겠습니다.
16은 2의 4승이라서 이진수 4자리는 십육진수 한자리 수로 표현할 수 있습니다. 반대로 십육진수 한자리는 이진수 4자리로 바꿀 수 있겠지요. 결국 십육진수 53에서 5는 이진수 0101 3은 0011로 바꿀 수 있고 두 수를 붙이면 이진수 01010011이 됩니다. 처음 왼쪽의 0은 없어도 같은 값이지만 꼭 8개의 수로 표현하라면 0을 붙여야 맞겠지요.
서..선생님 3:56에 4곱하기 10의 영승은 0아닌가요?ㅜㅠ이해가 되지 안사옵니다
10의 영승은 1입니다:)
@@clecture 아핳 답변감사함다ㅜㅠㅠ
이 사람은 신이야!
수 많은 신들이 노하시겠네요. 그래도 고맙습니다 :)
진짜 설명 너무 잘하십니다 바로 이해했어요
정말 쉽게 가르쳐 주시네요 대기업 인강보다 훨씬 나은듯요 ㅎㅎ
고맙습니다~:)
저...혹시 강의 유튜브에서만 하시나요? 너무 좋은데 혹시 오프라인 강의도 하시나요
제가 호주에 살아서 오프라인 강의는 할 수 없네요ㅠ. 혹시 시드니에 사시면 저자 직강 가능합니다:)
@@clecture 시드니...ㅜ 그럼 혹시 책 출판하신건 없으시나요 ㅠㅠ
@@병욱-e8q '혼자 공부하는 C언어' 출간했습니다:)
@@clecture 엇! 혹시 서점에도 파나요?? 교보문고 같은
@@병욱-e8q 네 대형 서점에는 거의 있을겁니다.
질문 하나만 할게요! 그 2진수 8진수 16진수로 나눌떄 만약 나누기가 딱 떨어지면 점점점 하고 0을 쓰고 딱 떨어지지 않을떄 몫을 쓰고 그 옆에 점점점 나머지를 쓰는거 맞죠?
네 맞습니다~:)
4도 2의 거듭제곱인데 4진법은 프로그래밍에서 잘 사용되지 않나요??
c언어 코드에서 십진수, 팔진수, 십육진수를 사용할 수 있는데요. 값이 쉽게 와 닿지 않는 팔진수, 십육진수를 쓰는 이유는 그 값이 메모리에 어떤 이진수의 상태로 저장되는지를 코드에 표현할 수 있기 때문입니다. 예를 들어 십육진수 상수 0xb7 는 메모리에 00000000 00000000 00000000 10110111 이렇게 4바이트로 저장되겠구나 하고 쉽게 알 수 있습니다. 그래서 비트 연산을 했을 때 그 결과도 쉽게 알 수 있고요. 물론 이진수 상수를 사용하면 더 좋겠지만 값이 크면 코드가 길어지고 오히려 한 눈에 잘 안들어올 듯 합니다. 사진수도 특별히 써야할 이유가 없지 않을까 싶네요. 보통 코드에서는 16진수를 많이 씁니다.
8:02 16의 0승이 16이라고요....?...
예전에 했던 거 기억안나서 다시 봤는데 이해 잘 되네요 감사합니다!
항상 진법과 이진 계산이 문제라니까요 ㅋㅋ
감사합니데이ㅠㅠ
지나치지 않고 이렇게 답글 달아 주셔서 저도 고맙습니다~ :)
감사합니다! 책을 풀다가 모르는 게 있어서요.. 10진수 열에 대한 2진수 열을 구하라. 0에서 7 이라는 문제가 있는데 그러면 답은 0일 때 0000, 1일 때 0001, 2일 때 0010, 3일 때 0011, 4일 때 0100 ••• 7일 때 0111 이 맞나요?
네 맞습니다 :)
소수점이 있는 수는 어떻게 변환 하나요?
다음 영상 참고하시면 될 것 같습니다.
ruclips.net/video/CR2rHa9z4WE/видео.html
안녕하세요 중학생 1학년인데 정보 시간에 배우는데 온라인 클래스로 해서 제대로 못배워서 배우고 싶어 검색해 봤는데 이 영상이 나와서 보는데 진수랑 진법의 차이가 뭔지 알 수 있을가요?
진법은 수를 표시하는 방법이고 진법에 따라 만들어진 수를 진수라고 생각하면 되겠네요. 예를 들어 십진수 12를 다른 진법으로 표현하면 이진수 1100, 팔진수 14, 십육진수 c가 되겠네요.
박수천 교수님이세요???
아 교수님이 저랑 목소리가 비슷하신가 보네요. 다른 영상에는 제 얼굴이 나오기도 합니다 :)
그러면 10진법으로 바꿀려면 단위숫자에 곱해서 더하고 10진법을 다른 진법으로 바꿀려면 나누고
2진법 8,16진법은 001이런방식으로 외우는 방식으로 하는건가요?
2진법을 8진법으로 바꾼다면 오른쪽부터 3자리씩 끊어서 3자리 마다 8진수 한자리로 바꾸면 됩니다. 16진수로 바꿀때는 4자리씩 끊어 주고요. 예를 들어, 2진수 111101110001 의 경우는 8진수로 바꿀 때 오른쪽부터 3개씩 끊어서 8진수 한자리로 바꾸면 됩니다. 가장 오른쪽 3자리부터 해보면 001 -> 8진수 1, 110 -> 8진수 6, 101 -> 8진수 5, 111 -> 8진수 7 이므로 8진수 7561이 됩니다. 여기서 2진수 세자리를 8진수로 바꿀 때 10진수로 바꿀 때처럼 오른쪽부터 2의 0승부터 곱해서 더해주면 됩니다. 101은 1 X 2의 2승, 0 X 2의 1승, 1 X 2의 0승 으로 계산하면 5가 됩니다. 16진수로 바꿀 때는 4자리씩 끊어서 마찬가지 방법으로 바꾸면 됩니다.
16진수라는게
0~9라고 하고 다음은 abcdef로 하셨잖아요?
a가 그럼 10인가요?
모든 진수는 10부터는 알파벳으로 쓰나요?
참 2진수 3진수 4진수등 진수는 모든 숫자 마다 다있나요?ㅠ제가 돌대가리라
16진수만 10자리부터 A로 시작해 차례대로 써 가는거 같네요^^
진법은 수를 나타내는 단위 숫자를 몇 개 쓰느냐에 따라 이진법, 팔진법, 십진법, 십육진법 등이 있습니다. 즉 이진법은 0과 1 두 개만 사용하고, 팔진법은 0~7 여덟개, 십진법은 0~9 열 개를 사용합니다. 수를 표현할 때 쓰는 아라비아 숫자가 0부터 9까지 열 개 있으므로 이진법, 팔진법, 십진법은 모두 아라비아 숫자만 가지고 표현할 수 있으나 십육진법은 아라비아 숫자 열 개로 부족하므로 알파벳 a~f 여섯개를 더 사용합니다.
@@clecture 존경합니다ㅠ
수를 표현할때 아리비아 숫자가 0~9까지 있다고 하셨는데 예를들어 10과 11등 그 다음 두자리 숫자들은 아라비아 숫자가 아닌가요?ㅠ
@@동정-f9g 아라비아 숫자는 수를 표현할 때 쓰는 단위숫자(digit)를 뜻합니다. 10, 11 등은 단위숫자로 만든 수(number)라고 생각하시면 돼요. a~z는 알파벳이고 알파벳을 조합해서 단어를 만들 듯 몇 개의 단위숫자를 가지고 수를 표현 하느냐가 진법이라고 생각하시면 됩니다.
10진수를 8진수로 변환할 때 왜 7이 남는지 이유도 같이 설명해 줬으면 아쉬움이 있습니다.......
8진법은 어떤 양을 8개씩 묶는 것이라 8로 나누어 떨어지지 않는 경우 나머지가 생깁니다. 당연히 나머지는 1부터 7까지 남게 됩니다. 예를 들어 십진수 23을 팔진수로 바꾼다면 사과가 스물 세 개 있는데 8개씩 두번 묶으면 몇 개가 남는지를 확인해서 수로 나타내면 됩니다. 물론 두 묶음과 7개가 남으니 팔진수 27이 됩니다. 결국 어떤 진법의 수든 8진수로 바꾸면 각 단위의 수는 0~7까지가 됩니다.
초등학생인데 게임할려고 보고있습니다 감사합니다
응원합니다. 후에 멋진 게임 프로그래머가 되실지도 모르겠네요:)
7658 이라는 8진수를 2진수로 변환시
111 110 101 1000
7 6 5 8
이 아닌가요? 진법 변환기 사용시 8의 수는 없어지던데...
나종우 7658은 8진수가 될 수 없습니다. 8진수는 0부터 7까지의 단위 숫자만 쓸 수 있습니다.
1011은 b이다 이런건 외워야 하나요?
십육진수 b가 십진수로 11인 것은 외워야 합니다. 사과 일곱개가 아라비아 숫자 7임을 외우듯이 사과 열개, 열한개, 열두개... 열다섯개를 십육진수 a, b, c, d, e, f로 표현함을 외워야 합니다. b가 십진수로 11임을 알면 이진수 1011로 바꿀수도 있고 팔진수 13으로도 바꿀 수 있습니다.
혹시 3진법에 대해서도 영상 올려주실수 있나요?
이 영상은 프로그래밍 언어(C언어) 공부에 필요한 지식을 전달하기 위해서 2진법, 8진법, 16진법을 설명했습니다. 3진법도 개념은 같으니 변환방법 등은 응용하시면 될 것 같습니다. 즉 3진수는 0, 1, 2로만 만들고, 삼진수 120은 1 x 3의2승 + 2 x 3의1승 + 0 x 3의0승 이렇게 십진수로 바꿀 수 있고, 십진수를 삼진수로 만드는 것도 3으로 나누어 몫이 0이 될때까지 나머지를 쭉 적으면 됩니다.
18을 2의보수(2's complement)를 이용하여 -18로 변환하며 뭐예요?
비트수에 따라 다르겠지만 8비트로 값을 표현한다면 십진수 18은 이진수 00010010이 됩니다. 이 값에 대한 1의 보수는 각 비트를 모두 반전시켜 11101101로 구할 수 있고 여기에 1을 더해 2의 보수를 구하면 11101110이 됩니다.
무조건 저렇게 계산하면 되나요?
무조건이란 단서가 있으니 왠지 '네'라고 입이 잘 떨어지지 않네요:)
저 질문좀 드리고 싶은데...제가 (0.1001) 2진수를 10진수로 바꾸는 문제인데 이게 답이 영 나오질 않아서요 이거 풀이 방식을 해도 도무지 헷갈리네요....혹시 풀이 힌트만 이라도 알려 주실 수 있나요?
소수점이 있는 경우 소수점을 기준으로 왼쪽으로는 2의 0승, 2의 1승, 2의 2승 ... 이렇게 곱해서 더해주면 되고 소수점 오른쪽으로는 2의 -1승(이분의 1), 2의 -2승(사분의 일), 2의 -3승(팔분의 일)... 이렇게 곱해서 더하면 됩니다. 0.1001은 소수점 왼쪽으로는 수가 없으므로 그냥 0, 오른쪽으로는 1 X 1/2 + 0 X 1/4 + 0 X 1/8 + 1 X 1/16 = 0.5 + 0 + 0 + 0.0625 = 0.5625 이렇게 되네요.
ㄹㅇ 명강의
17:38 1111이 왜 f가 되는지 이해가 안돼요... 어떻게 계산하나요?
밑의 댓글보고 이해했습니다 좋은 영상 감사합니당~
이진수 1111을 십진수로 바꾸면 1 X 2의3승 + 1 X 2의2승 + 1 X 2의1승 + 1 X 2의0승 이고 2의 거듭제곱을 계산하면 1 X 8 + 1 X 4 + 1 X 2 + 1 X 1 이 됩니다. 곱하기와 더하기를 모두 계산하면 십진수로 15가 되지요. 십진수 15는 십육진수로 f이므로 결국 이진수 1111은 십육진수 f가 됩니다. 십육진수는 수를 표현하는 단위 숫자가 16개가 있는데요. 0부터 9까지 아라비아 숫자 10개와 알파벳 a, b, c, d, e, f 이렇게 6개를 사용합니다. 0부터 9까지는 십진수나 십육진수나 같은 단위 숫자를 사용하지만 십진수 10부터는 십육진수 a, 십진수 11은 십육진수 b, 12는 c, 13은 d, 14는 e, 15는 f가 됩니다.
@@안녕-z7p6i 이해했다는 글을 못보고 답글 달았네요 :)
아주좋아요
저도 좋아요 :)
와,,이해바로감
이해력 짱이네요 :)
10진법 한 자릿수로 나타낼려면 최소
몇개 비트가 필요한가요?
성이름 하나의 비트가 2가지 상태를 나타내므로 비트가 2개 있으면 4가지 상태를 나타낼 수 있지요. 비트가 3개면 8가지, 비트가 4개면 16가지. 따라서 10가지 상태를 서로 다른 비트열로 표현하려면 최소 4개의 비트가 필요하겠네요. 비트에 대해 좀더 알고 싶으시면 아래 ‘비트가 뭡니까?’ 영상을 참고하세요~
ruclips.net/video/45OGCTVecuA/видео.html
감사합니다
네 고맙습니다 :)
영상 감사합니다!
혹시 영상 맨 끝에 써주시는 표 다 외우면 어떤 수든지 2진수으로 바꾼후 원하는 진수 (8, 10, 16)으로 다 바꿀수 있나요?
제가 적어 드린 것이 외워야 할 표는 아니고요. 이해를 위해 적어드린 겁니다. 우리가 1329 다음 수가 1330임을 외워서 아는 것은 아니지요. 10진수는 9에 1을 더하면 한 자릿수가 올라가서 10이 되는 것을 알기 때문에 더 큰 자릿수도 쉽게 계산할 수 있습니다. 2진수로 0과 1만 사용하므로 1다음에 2가 되지않고 한 자리가 올라가므로 10이 됨을 이해해야 합니다. 8진수나 16진수도 마찬가지고요. 일단 2진수로 바꿀 수 있으면 맨 오른쪽 부터 3개씩 끊어서 8진수 한자리로 바꾸면 8진수, 4개씩 끊어서 16진수 한자리로 바꾸면 16진수가 됩니다.
@@clecture 감사합니다..! 학교 선생님께서 해주신 설명이 부족해서 영상을 찾아본건데 이해가 정말 잘되었습니다! 감사합니다 ㅎㅎ
학교에서 2진수를 8진수로 바꿀 때는 세 개씩 앞에서 끊던데 왜 뒤가 아닌 앞에서 끊는지 알 수 있을까요? 소수점만 뒤에서 끊는 건가요? (ex. 2진수 110011.11011 -> 110/ 011/ 110/ 11)
소수점을 기준으로 왼쪽으로 3개씩, 오른쪽으로 3개씩 끊어줍니다. 예를 들어 11001.11011 이면 11/001.110/11 --> 31.63(8진수) 이렇게 됩니다. 앞에서부터 3개씩 끊으면 61.63(8진수)이 되므로 값이 달라지지요. 물론 정수부분의 숫자가 3의 배수개이면 앞에서 끊나 소수점을 기준으로 왼쪽으로 끊나 마찬가지입니다.
감사합니다~ 혹시 16진수를 10진수로 변환하려면 10진수로 변환하는 방법도 설명해 주실 수 있나요? 16진수를 2진수로 변환하고 10진수로 변환하면 되나요? 16진수 2A를 10진수로 변환하면 42, 16진수 ABC를 10진수로 변환하면 2748 맞나요?
@@user-mc3bl3ym8j 십육진수를 십진수로 바꾸는 것은 각 단위숫자에 십육의 거듭제곱을 곱해서 더하면 됩니다. 십육진수 ABC는 A x 16의제곱 + B x 16 + C = 10 x 256 + 11 x 16 + 12 = 2560 + 176 + 12 = 2748이 됩니다. 각 단위숫자를 이진수로 바꾸고 2의 거듭제곱의 가중치를 곱해서 더해도 됩니다. 즉 ABC는 이진수로 1010 1011 1100 이고 1 x 2의11승 + 1 x 2의9승 + 1 x 2의7승 + 1 x 2의5승 + 1 x 2의4승 + 1 x 2의3승 + 1 x 2의2승 = 2048 + 256 + 128 + 32 + 16 + 8 + 4 = 2748이 됩니다.
감사합니다~!!
+143은 부호화 2진수 2의 보수형태로 왜 저장이 안되는지 너무 궁금합니다. 수의 길이는 8비트이구요. 이게 2진수로 표현하면 10001111로 나오는데 단지 최상위 비트가 1인 음수형태라서 저장이 안되는걸까요?
네 생각하신 것이 맞습니다. 143을 한 바이트의 데이터로 표현할 때 가장 왼쪽의 비트가 1로 바뀌므로 음수로 처리됩니다. 즉 저장은 되지만 그 값을 사용할 때 음수로 인식하므로 143이 0보다 크냐고 하면 결과는 거짓이 됩니다. 4비트를 예를 들어 설명해보면 비트가 두 가지 상태를 나타내므로 4비트면 총 2의 4승 해서 16가지가 됩니다. 이 16가지 경우의 수를 모두 양수를 표현하는 용도로 쓴다면 0부터 15까지가 되겠지요. 하지만 음수까지 표현한다면 8가지는 양수표현, 8가지는 음수표현으로 쓰는 것이 맞습니다. 여기서 어떤 비트열을 양수로 하고 어떤 비트열을 음수로 할지 결정해야 하는데 가장 왼쪽의 비트를 기준으로 0이면 양수, 1이면 음수로 사용하도록 약속한 것이지요. 결국 양수 비트열 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111 이렇게 8가지가 되고 음수는 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 이렇게 8가지가 됩니다. 그래서 만약 컴퓨터에서 코딩을 할 때 10을 사용하면 4비트에서 1010이 되고 가장 왼쪽의 비트가 1이므로 이 값은 음수로 처리되는 것이지요. 여기서 어떤 음수인지는 2의 보수로 판단합니다. 1010의 2의 보수가 0110이므로 이 값은 10진수로 6이고 따라서 -6으로 처리되는 것이지요. 따라서 코딩을 할 때 10을 사용하면 안됩니다. 그 범위가 4비트이면 -8(비트열 1000)부터 0을 포함하여 7(비트열 0111)까지가 됩니다. 질문하신대로 8비트로 표현한다면 2의 8승은 256이므로 절반으로 나누면 128이고 따라서 8비트에서 표현할 수 있는 값의 범위는 -128 ~ 127까지 됩니다. 결국 143은 부호비트가 1로 바뀌는 데이터이므로 음수로 처리되는 것이지요.
@@clecture 헐... 이제봤어요 ㅜㅜ 정말 감사합니다 너무감사해여
7이 111이 어떻게 나오는지.머르겠어요ㅠㅠ
2^2X1 + 2^1X1 + 2^0X1 = 4+2+1=7
십진수 7을 이진수로 바꾸면 111이 되는데요. 망망님 답글을 거꾸로 계산하면... 7을 2로 나눈 나머지가 가장 오른쪽의 1이 됩니다. 그리고 몫이 3인데 이 값을 다시 2로 나눈 나머지가 오른쪽에서 두 번째 1이 되지요. 마지막으로 3을 2로 나눈 몫이 1인데 이 값을 2로 나눈 나머지가 1이므로 이 값이 가장 왼쪽의 1이 됩니다. 이렇게 몫이 0이 될때까지 2로 나누면서 나머지를 적으면 이진수로 바꿀 수 있습니다.
@@clecture 그런식이면 십진수 9는 1001이 나오는건가요
@@Bayern_min 네 마자용
이거 10진수를 다른진수로 바꿀때 나머지가 나누는 수보다작을때까지 나누는거라 배웠는데 여기서는 왜 1을 2 로나누고 0 이라고적지?
알고 계신대로 '나머지가 나누는 수보다 작을때까지 나누는 경우'에서 나머지는 몫을 의미하는 것이겠죠? 이 경우 더이상 나누어지지 않는 마지막 몫까지 2진수에 포함시킵니다. 예를 들어 십진수 3을 이진수로 바꿀 때 2로 나눈 몫은 1이고 나머지는 1이지요. 몫이 2(나누는 수)보다 적으므로 더 이상 나누지 않고 끝냅니다. 이 때 이진수는 몫 1과 나머지 1을 적어서 11이 됩니다. 영상에서는 몫 1을 2로 또 나누어서 몫을 0으로 만들고 나머지 1을 포함시켜 이진수 11을 만든 겁니다. 결국 같은 방법인데요. 반복적으로 나누어 나머지를 사용하는 방법을 일관성 있게 설명하기 위해서 마지막에 몫이 0이 될때까지 한번 더 나누는 방법으로 설명했습니다.
학교에서 수업들은거랑 비슷하네요! 근데.. 자버려서.. 보러왔습니당..ㅎㅎ
잘 하셨어요 :)
107001를 16진수로 바꾸면 무엇인가요
만약 8진수라면 각 자릿수를 2진수 3자리로 바꾸어 2진수를 먼저 만들고요. 그 다음 2진수의 오른쪽부터 4자리씩 끊어서 16진수로 바꿉니다. 즉 왼쪽부터 바꾸면
1 -> 001
0 -> 000
7 -> 111
0 -> 000
0 -> 000
1 -> 001
이걸 죽 이으면 001000111000000001 이렇게 되지요. 이 2진수를 오른쪽에서 4자리씩 16진수로 바꾸면 됩니다. 즉 오른쪽부터 4개씩 16진수 한자리로 바꾸면
0001 -> 1
0000 -> 0
1110 -> e
1000 -> 8
이걸 쭉 이으면 8e01이 되겠네요.
2진수의 왼쪽에 남는 00은 의미가 없으니 바꾸지 않아도 됩니다.
만약에 질문하신 수가 10진수라면 8로 나누어 8진수로 먼저 바꾸고 같은 방법을 쓰시면 됩니다.
13:53
1100이 2진수일때 8진수로 바꾸면 얼마가 나오는지 모르겠어요 ㅠㅠㅠ
이진수를 팔진수로 바꿀 때는 소수점을 기준으로 좌우로 세 자리씩 끊어서 바꿉니다. 이진수 1100에 소수점을 표시하면 1100.0이므로 결국 오른쪽에서 왼쪽으로 세 자리씩 바꿉니다. 가장 오른쪽의 세 자리 100은 1 X 2의2승 + 0 X 2의1승 + 0 X 2의0승 = 4가 됩니다. 그리고 1100에서 가장 왼쪽의 1은 1 X 2의0승 = 1이므로 결국 팔진수 14가 되겠네요.
2에 0승이 1이라는데 저는 0으로 알았거든요ㅠ어떻게 1이 되는건가요?
로그함수로 생각해보세요
@@hyunbin316 그런거 몰라요ㅠ
고등학생이신가요?... 고등학교 수학에서 배워요 모르시면 그냥 외우시는걸 추천드립니다.. 어떤수의 0승은 모두 다 1이에요
이렇게 한번 생각해볼까요. 가진돈 X 2 이건 내가 가진돈을 두 배로 만들겠다는 거죠. 그 결과에 또 두 배를 한다면... 가진돈 X 2 X 2 이렇게 되죠. 만약 계속 두 배씩 다섯번을 불린다면 가진돈 X 2 X 2 X 2 X 2 X 2 이렇게 되는데요. 뒤에 2를 다섯번 곱한 것을 간단히 2의 5승 이렇게 표현한다면.... 2의 1승은 가진돈을 딱 한번 두 배 하겠다는 뜻이되고... 그렇다면 2의 0승은? 가진돈을 그대로 두겠다는 뜻이 되겠지요. 따라서 2의 0승은 1이 되어야 합니다. 3을 곱하는 경우나 7을 곱하는 경우나 모두 마찬가지겠지요. 따라서 어떤 수의 0승은 1로 생각하면 됩니다.
8진수 0.425 를 10진수로 바꾸려는데 계속 곱해지는데 이럴 땐 어떡하나요.?.
그냥 계산 해야지요ㅜ. 소수점을 기준으로 왼쪽은 0이므로 그냥 0, 오른쪽은 4 X 1/8 + 2 X 1/64 + 5 X 1/512 = ??? 이렇게 계산하면 됩니다. 근데 이진수나 십육진수가 아니라 십진수로 바꾸는 문제가 나왔나요?
Respect......
사랑해요
고맙습니다 :)
10.1011(2) 이면 무엇인가요
소수점이 있는 실수의 경우는 소수점을 기준으로 왼쪽은 정수부, 오른쪽은 소수부로 나누어 계산합니다. 정수부는 2의 거듭제곱을 곱해서 더하고, 소수부는 2의 음의 거듭제곱 즉 2의 -1승, 2의 -2승... 이렇게 계산합니다. 전체를 계산하면 1 X 2 + 0 X 1 (점찍고) 1 X 0.5 + 0 X 0.25 + 1 X 0.125 + 1 X 0.0625 이걸 계산하면 십진수 소수가 나오겠네요.