차례:
비디오: C언어/C++ 강의 53화 바이너리 파일 [어소트락 게임아카데미] 2024
다행히도, 저수준 코드를 작성하거나 스위치를 뒤집어 디지털 장치를 프로그래밍 할 필요가 없습니다. 납땜 와이어. 오늘날의 C 프로그래밍은 더 높은 수준에서 발생하기 때문입니다. 그러나 여전히 기계 내부 깊숙이 저수준 코딩이 계속되고 있습니다. 모든 소프트웨어가 상승하는 1과 0의 원시 수프와 단절된 것입니다.
바이너리 소개
바이너리 숫자 또는 비트 는 1과 0입니다. 그러나 그룹으로, 그들은 중대한 힘을 소집한다. 디지털 저장소는 이러한 비트를 그룹으로 사용합니다.
기간 | C 변수 | 비트 | 값 범위 부호 | 값 범위는> 비트 |
---|---|---|---|---|
_Bool | 1 999 <서명 > 0~1 | 0~1 <> 바이트 | 문자 | 8 |
0 255 | -128 127 | 단어 | 단축 INT | 16 999 32>에 0 65 535 |
-32, 768, 767 | 긴 | 긴 INT | 32 | 0-4, 294, 967, 295 |
-2 147 483, 648 내지 2, 147, 483, 647 & lt; 바이트를 비트, 단어 등으로 그룹화 할 경우의 이점은 처리하기가 쉽다는 것입니다. 프로세서는 청크로 된 정보를 더 잘 처리 할 수 있습니다. 청크가 그 값을 얻는 방법은 2의 거듭 제곱에 기초한다. | 2 999의 수식 999 10 진 값 999 2 999 0 999 1 999 1 > 2 | 1 | 2 | 10 |
2
100 | 2 | 3 |
---|---|---|
8 <> 1000 2 999 | 4 | 16 |
10000 2 | 5 | 32 |
100000 2 | 6 | 64 |
1000000 2 > 7 999 128 9000 100000 |
|
8 비트 또는 1 바이트로 저장할 수있는 값의 범위를 볼 수 있습니다. C 언어의 char 변수에서 찾을 수있는 범위와 같습니다. 실제로 2 열을 합하면 255 바이트가됩니다. 이는 바이트의 비트 수입니다. |
사실, 바이트에 대해 256 개의 가능한 값을 찾을 수 있습니다. 여기에는 모두 0의 순열이 포함됩니다. 그것은 가치입니다. 아래는 2의 멱승이 어떻게 이진 저장 공간에 매핑되는지 보여준다. 10 진수의 소수점 이하 자릿수가 10의 제곱수만큼 증가하는 것처럼 이진수의 비트 수가 2의 제곱으로 증가하여 오른쪽에서 왼쪽으로 읽습니다. 설정되거나 또는 값 1을 갖는 각각의 비트는 2의 제곱수, 즉 2 9 9 9 9 9 9 9 9 9 9 9 9 9 2 및 2 2 9 9 9 9 999를 나타낸다. 0 | . 이 값에 십진수를 곱한 다음이를 합산하면 바이너리 00101011의 십진수 표현 인 43이됩니다. | 그게 다 좋고 좋지만 기억하지 마십시오! |
바이너리를 십진수 값으로 변환하는 것에 신경 쓰지 마십시오. 컴퓨터가 항상 당신을 위해 그 일을합니다. 실제로 컴퓨터는 바이너리 만보고 십진수를 인간의 안구에 대한 호의로 표시합니다.그러나 바이너리 값을 조작 할 때, 무슨 일이 일어나는지 알 수 있습니다. 비트 값을 1로 변경하는 것을 | 비트 설정이라고합니다. | 비트의 값을 0으로 변경하는 것은 |
비트를 재설정하는 것으로 참조됩니다. 바이너리 값을 표시하는 방법 | C 언어의 바이너리 조작 연산자를 가장 잘 이해하려면 바이너리 숫자가 실제로 작동하는지 확인하는 것이 좋습니다. printf () 함수는 이진 변환 문자가 없으며 C 라이브러리는 이진 출력 함수를 호스팅하지 않습니다. 아니, 이진수를 보려면 자신 만의 기능을 만들어야합니다. | binbin () |
함수는 binbin ()이라는 2 진 출력 함수를 제공합니다. binbin () | 함수의 15 행에있는 binbin () 함수는 int 값을 삼킨다. 출력은 int 값을 2 진수로 나타내는 문자열입니다. | BINBIN () |
#include char * binbin (int n); int main () {int input; printf ("0 ~ 255 값 입력:"); scanf ("% d", & input); printf ("% d은 바이너리 % sn", 입력, binbin (입력)); return (0);} char * binbin (int n) {static char bin [9]; int x; for (x = 0; x <8; x ++) {bin [x] = n & 0x80? '1': '0'; 일반적으로 binbin () 함수의 내용은 다소 신비한 것처럼 보이지만 괜찮습니다.
연습 1
:
binbin () 함수의 소스 코드를 새 프로젝트에 입력하고 몇 번 빌드하고 실행하여 정수가 이진수로 나타나는 방식을 확인하십시오. binbin () 기능, binbin ()은 8 비트의 데이터 만 표시하지만 int 변수 유형은 일반적으로 더 많은 비트를 저장합니다. 연습 2: binbin () binbin ()
int 값의 16 비트를 표시하는 함수입니다 (기술적으로 16 비트는 short int입니다). 이렇게하려면 다음 항목을 변경해야합니다.
-
9 행: 텍스트를 변경하여 255 대신 65535가 지정되도록하십시오.
-
17 행: 출력의 16 자와 문자열 끝의 (널 문자)를 더한 값으로 배열의 크기를 17로 수정하십시오. 라인 20: 코드의 즉치 값 8을 16으로 조정하여 16 문자를 모두 계산합니다. 출력.
-
22 행: 값 0x80을 0x8000으로 바꿉니다. 이 변경은 비트 필드를 더 크게 만듭니다. Build Exercise 2. 몇 번 실행하여 더 큰 값에 대해 비트 필드의 모양을 확인합니다.