차례:
비디오: [따배씨] 0.10 이진수 | 따라하며 배우는 C언어, c언어 , 컴퓨터 작동원리, 코딩 2024
C ++ 변수는 내부적으로 이진 숫자로 저장됩니다. 이진수는 비트로 알려진 1 및 0 값의 시퀀스로 저장됩니다. 대부분의 경우, 숫자를 나타 내기 위해 사용하는 특정 비트를 처리 할 필요가 없습니다. 그러나 때로는 비트 수준에서 숫자를 변경하는 것이 실용적이고 편리합니다. 따라서 C ++에서는 이러한 목적으로 연산자 세트를 제공합니다. 소위
비트 형 논리 연산자는 비트 수준에서 인수에 따라 작동합니다. 어떻게 작동하는지 이해하려면 먼저 컴퓨터가 변수를 저장하는 방법을 검토하십시오.
처음으로 손가락을 댈 수 있었을 때부터 익숙한 숫자는
10 진수 로 알려져 있습니다. 일반적으로 프로그래머는 C ++ 변수를 십진수로 표현합니다. 따라서 var의 값을 (말) 123으로 지정할 수 있지만 그 의미를 고려하십시오. 123과 같은 숫자는 1 * 100 + 2 * 10 + 3 * 1을 나타냅니다.이 기본 숫자는 모두 100, 10 및 1입니다. 123 = 1 * 100 + 2 * 10 + 3 * 1 999 약간 다른 (그러나 동등한) 방식으로 표현하면 123은 다음과 같이 보입니다.
123 = 1 * 10 < 0 전력 (999)에 대한 임의의 999의 수는 1이다 (999) 2 * 10 999 + 3 * 10 999
기타 번호 시스템좋습니다. 우리의 카운팅 시스템의 기초 (또는
기본
)로 10을 사용하는 것은 아마도 원래의 계산 도구 인 10 개의 인간 손가락 때문일 것입니다. 계산 시스템을위한 또 다른 기반은 쉽게 20 일 수 있습니다.우리의 번호 체계가 개들에 의해 발명 된 것이라면 8 개가 될 수 있습니다 (각 발의 한 자릿수가 다리 뒷부분에서 보이지 않습니다). 수학적으로, 그러한 8 진 시스템은 다음과 같이 잘 작동했을 것이다: 123 999 = 1 * 899999 + 7 * 89999 < 여기서 작은 10 및 8은 10 진수 (10 진수)가 10이고 8 진수 (8 진수)가 8 인 번호 매기기 시스템을 의미한다. 카운팅 시스템은 긍정적 인 기반을 사용할 수 있습니다.
이진수 시스템 기본적으로 컴퓨터에는 두 개의 손가락이 있습니다. 컴퓨터는 기본 2를 사용하여 계산하는 것을 선호합니다. 숫자 123 999는 다음과 같이 표현됩니다: 1 * 2 999 + 1 * 2 999 + 1 * 2 999 + 1 * 2 999 + 0 * 2 999 2 999 * + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 1 * 2 999 * 1 * 2 9 9 9 9 9 10 = 0 * 컴퓨터 규약은 선행 숫자가 0이더라도 4, 8, 16, 32 또는 심지어 64 진수를 사용하여 이진수를 표현한다.컴퓨터가 내부적으로 구축되는 방식이기도합니다. 자릿수 는 10의 배수를 나타 내기 때문에 이진수
는
비트 ( 2 진수
의 약자) >).바이트 는 8 비트로 구성됩니다. (999 바이트 -이 는 이진 숫자를 호출하는 것이 좋지 않은 것 같습니다.) 메모리는 일반적으로 바이트 단위로 측정됩니다 (롤은 베이커 단위로 측정됩니다).
이러한 작은 기반을 가지고 숫자를 표현하기 위해서는 큰 비트 수를 사용해야합니다. 인간은 011110112와 같은 표현을 사용하여 123 10 과 같은 평범한 가치를 표현하는 번거 로움을 원하지 않습니다. 프로그래머는 짝수 비트를 사용하여 숫자를 표현하는 것을 선호합니다. 3 비트를 기반으로하는 8 진수 시스템은 C 초기의 기본 이진 시스템이었습니다. 오늘도이 흔적을 볼 수 있습니다. 0으로 시작하는 상수는 C ++에서 8 진수로 가정합니다. 따라서, 줄: cout << "0173 ="<< 0173 << endl; 는 다음 출력을 생성합니다. 0173 = 123 그러나 8 진수는 4 비트 숫자를 기반으로하는
16 진수
시스템으로 거의 완전히 대체되었습니다.
16 진수는 숫자 0에서 9까지 동일한 숫자를 사용합니다. 9에서 16 사이의 숫자의 경우 16 진수는 알파벳의 처음 6자를 사용합니다. A는 10, B는 11 등입니다. 따라서, 123 9 = 7 * 16 9 9 9 + B (즉 11) * 16 9 9 0은 다음과 같이 7B 9 9 9 9가된다. 프로그래머는 각 경우의 선행 숫자가 0 인 경우에도 4 자리 16 진수의 배수로 16 진수를 표현하는 것을 선호합니다. 마지막으로 7B와 같은 16 진수를 표현하고자하는 사람 16
는 첨자를 사용하여? 단말기는 999 개의 첨자도 지원하지 않습니다. 워드 프로세서 일지라도, 글꼴을 첨자 모드로 또는 그 아래에서 2 개의 부실한 자릿수를 입력하기 위해 드래그하는 것은 쉽지 않습니다. 따라서 프로그래머 (바보는 아니지만)는 0x가있는 16 진수 시작 규칙을 사용합니다. 따라서 7B는 0x7B가됩니다. 이 규칙을 사용하면 16 진수 0x7B는 십진수 123이고 0x123 16 진수는 십진수 291과 같습니다. 코드 스 니펫 cout << "0x7B ="<< 0x7B << endl; cout << "0x123 ="<< 0x123 << endl; 0x7B = 123 0x123 = 291 모든 수학 연산자를 십진수에 적용하는 것과 같은 방법으로 16 진수로 사용할 수 있습니다. 정말로 원한다면 접두사 '0b'를 사용하여 C ++ '14에서 이진수를 쓸 수 있습니다. 따라서 123은 0b01111011이됩니다.