이진 계산기
이진수 덧셈, 셈, 곱셈, 나 셈을 수행합니다. 이진수와 십진수를 변환합니다. 무료 수학 계산기. 즉시 결과를 얻으십시오.
이진수 체계: 컴퓨터 가 계산 하는 방법
바이너리 숫자 시스템 (기초-2) 은 비트 (비너리 숫자) 라고 불리는 0과 1이라는 두 자릿수를 사용합니다. 모든 컴퓨터, 스마트 폰 및 디지털 장치는 내부적으로 모든 정보를 바이너리 방식으로 저장하고 처리합니다. 왜냐하면 전기 회로는 두 가지 다른 상태를 안정적으로 나타낼 수 있기 때문입니다. 고전압 (1) 및 저전압 (0).
이진 숫자의 각 위치는 2의 제곱을 나타냅니다. 오른쪽에서 왼쪽으로 증가합니다.
| 위치 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| 가치 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
이진수에서 십진수로 변환:각 비트를 그 위치값으로 곱하고 모든 결과를 합산합니다.
예:1011010121x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =181
소수에서 이진 변환:반복적으로 2로 나누고, 각 단계마다 나머지를 기록하고, 나머지를 아래에서 위로 읽습니다.
예: 181을 이진으로 변환합니다.
- 181 ÷ 2 = 90 잔여1
- 90 ÷ 2 = 45 잔여0
- 45 ÷ 2 = 22 잔여1
- 22 ÷ 2 = 11 잔여0
- 11 ÷ 2 = 5 잔여1
- 5 ÷ 2 = 2 잔여1
- 2 ÷ 2 = 1 잔여0
- 1 ÷ 2 = 0 잔여1
나머지 부분은 아래에서 위로 읽습니다.101101012 ✓
이진수학: 덧셈, 셈, 곱셈
이진수수술은 십진수법과 같은 규칙을 따르지만, 10 대신 2에서 수행됩니다.
이진 덧셈 규칙:0+0=0, 0+1=1, 1+0=1, 1+1=10 (carry 1), 1+1+1=11 (carry 1)
예: 10112 + 11012 (11 + 13 = 24)
1011 + 1101 ------ 11000
오른쪽에서 왼쪽으로 작업: 1+1=10 (쓰기 0, 운반 1); 1+0+1=10 (쓰기 0, 운반 1); 0+1+1=10 (쓰기 0, 운반 1); 1+1+1=11 (쓰기 1, 운반 1); 최종 운반 기록 1. 결과: 110002 = 24
2의 보완 (비너리 빼기):컴퓨터는 음수를 처리하고 2의 보충 표현을 사용하여 빼기를 처리합니다. 숫자의 2의 보충을 찾으려면 모든 비트를 뒤집고 1을 더합니다.
예: 8비트 2의 보충에서 -13: +13 = 000011012 -> 모든 비트를 뒤집어 -> 111100102 -> 1을 추가 ->111100112
이렇게 하면 덧셈을 할 수 있습니다. 20 - 13 = 20 + (-13)
이진 곱셈우아하다: 각 부분 곱은 0 (0으로 곱함) 또는 숫자 자체 (1으로 곱함) 로 좌우로 이동한다. 예: 10112 x 1012 (11 x 5 = 55):
1011 x 101 ----- 1011 (1011 x 1) 0000 (1011 x 0, 이동) 1011 (1011 x 1, 이동 두 번) ------- 1101112 = 55
컴퓨팅의 바이너리: 비트, 바이트 및 데이터 크기
이진 단위를 이해하는 것은 컴퓨터, 스토리지 또는 네트워크 속도를 다루는 모든 사람에게 필수적입니다.
| 단위 | 크기 | 최대 값 (서명 없음) | 일반적인 사용 |
|---|---|---|---|
| 조금 | 1 이진자리 | 1 | 부울 플래그, 단일 바이너리 값 |
| 씹어 | 4비트 | 15 (육각형: F) | 1개의 헥사데시멀 숫자 |
| 바이트 | 8비트 | 255 | 단일 문자 (ASCII), 컬러 채널 |
| 단어 | 16비트 | 65,535 | 레거시 16-비트 시스템, 유니코드 기본 |
| 더블 워드 (DWORD) | 32비트 | 4,294,967,295 | 32비트 정수, IPv4 주소 |
| 쿼드 워드 (QWORD) | 64비트 | 18,446,744,073,709,551,615 | 현대 정수, 포인터, 타임 스탬프 |
색상 값:웹 컬러는 24비트 RGB (8비트/채널) 를 사용합니다. #FF5733 = R:255, G:87, B:51. 각 8비트 채널은 256가지 색상을 나타낼 수 있습니다 (0 - 255). 가능한 총 컬러: 2563 =16,777,216 명(약 1670만원)
Unix/Linux의 파일 권한:rwxr-xr-- = 111 101 100 바이너리 = 7, 5, 4 옥탈 = chmod 754. 3 비트의 각 세트는 소유자, 그룹 및 기타의 읽기 (r = 4), 쓰기 (w = 2) 및 실행 (x = 1) 권한을 나타냅니다.
비트별 연산 및 그 응용
비트별 연산은 정수 내의 개별 비트들을 조작한다. 이들은 저수준 프로그래밍, 암호학, 네트워크 프로그래밍 및 성능에 중요한 코드에 기본이 된다.
| 운영 | 상징 | 행동 | 예 |
|---|---|---|---|
| 그리고 | & | 두 비트 모두 1 이면 1 | 1010과 1100 = 1000 |
| OR | | | EITHER 비트가 1인 경우 1 | 1010 입니다. 1100은 1110 입니다. |
| XOR | ^ | 비트가 DIFFERENT인 경우 1 | 1010 ^ 1100 = 0110 |
| 아닙니다. | ~ | 모든 비트를 뒤집어 | ~1010 = 0101 |
| 왼쪽 이동 | << | 좌측 이동 비트 (x2 각 이동) | 1011 << 1 = 10110 (x2) |
| 오른쪽으로 이동 | >> | 오른쪽 이동 비트 (각 이동에 2 ÷) | 1011 >> 1 = 0101 (÷2) |
실용적 사용:
- 비트 마스킹:특정 비트가 설정되었는지 확인합니다.
if (flags & 0b0100) { ... }- 비트 2가 1인지 확인합니다. - 세팅:
flags = flags | 0b0100-- 현재 값과 상관없이 비트 2를 1로 설정합니다. - 좀 정리하자면
flags = flags & ~0b0100-- 비트 2에서 0을 제거합니다. - 2의 제곱으로 빠르게 곱/분할:
n << 3= n x 8;n >> 2= n ÷ 4. 비트 시프트는 CPU 레벨의 연산이며, 곱하기보다 훨씬 빠르다. - 짝수/방정수 확인:
if (n & 1) { /* odd */ }-- 어떤 홀수의 마지막 비트도 항상 1입니다.
숫자 체계 비교: 이진수, 여덟진수, 십진수, 열십진수
컴퓨터 과학은 각각 다른 맥락에 적합한 네 가지 숫자 시스템을 사용합니다.
| 시스템 | 기초 | 숫자 | 일반적인 사용 |
|---|---|---|---|
| 바이너리 (기반-2) | 2 | 0, 1 | CPU 동작, 저장, 논리 |
| 오크탈 (기반-8) | 8 | 0 - 7 | 유닉스 파일 권한, 이전 시스템 |
| 소수 (기반-10) | 10 | 0 - 9 | 사람이 읽을 수 있는 숫자 |
| 헥사데시멀 (기반-16) | 16 | 0 - 9, A - F | 메모리 주소, 색상 코드, 기계 코드 |
빠른 변환: 바이너리 <-> 헥스(4 이진자리 = 1 헥사자리):
| 바이너리 | 엑스 | 소수점 | 바이너리 | 엑스 | 소수점 |
|---|---|---|---|---|---|
| 0000년 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001번 | 9 | 9 |
| 0010 | 2 | 2 | 1010 년 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 년 | C | 12 |
| 0101 | 5 | 5 | 1101 년 | D | 13 |
| 0110 | 6 | 6 | 1110 년 | E | 14 |
| 0111 | 7 | 7 | 1111 년 | F | 15 |
이 4비트 그룹화는 hex를 바이너리 데이터의 컴팩트한 표기법으로 매우 유용하게 만듭니다: 32비트 값11001010 00111111 10110101 00001100더 쉽게 쓸 수 있습니다.CA3FB50C.
네트워크에서의 바이너리: IP 주소 및 서브넷 마스크
이진수를 이해하는 것은 네트워크 엔지니어링에 필수적입니다. 왜냐하면 IPv4 주소는 기본적으로 32비트 이진수이기 때문입니다. 그리고 서브네트, 즉 네트워크를 나누는 과정은 전적으로 이진 연산에 의존합니다.
같은 IPv4 주소192.168.1.10032비트 바이너리 값의 인간으로 읽을 수 있는 표기법입니다.
11000000.10101000.00000001.01100100
A 서브넷 마스크주소 중 어떤 부분이 네트워크를 식별하고 어떤 부분이 호스트를 식별하는지 결정합니다. 바이너리에서 마스크 255.255.255.0는:
11111111.11111111.11111111.00000000
IP 주소와 서브넷 마스크의 비트별 AND은 네트워크 주소를 제공합니다.
| 부품 | 소수점 | 바이너리 |
|---|---|---|
| IP 주소 | 192.168.1.100 | 11000000.10101000.00000001.01100100 부산광역시 |
| 서브넷 마스크 | 255.255.255.0 | 1111111111111111111111111111 |
| 네트워크 (AND) | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
CIDR 표기법 (예를 들어, /24) 은 서브넷 마스크에 얼마나 많은 선두 1-비트가 있는지 알려줍니다. /24 마스크에는 24개의 1과 8개의 0이 있으며, 서브넷 당 28 - 2 = 254개의 사용 가능한 호스트 주소를 허용합니다. /16 마스크는 65,534개의 호스트를 허용합니다. 네트워크 엔지니어들은 서브넷을 계획하고, 방송 주소를 계산하고, 라우팅 문제를 해결하기 위해 매일 바이너리 정신 수학을 사용합니다.
암호학 및 보안의 이진법
현대 암호 알고리즘은 XOR, 비트 이동 및 대체 작업의 조합을 통해 개별 비트를 조작하여 전적으로 바이너리 수준에서 작동합니다. 바이너리를 이해하는 것은 디지털 보안이 어떻게 작동하는지 이해하는 관문입니다.
XOR 암호화 (현대 암호의 기초):XOR은 독특한 속성을 가지고 있습니다. 같은 키로 두 번 적용하면 원래 값을 반환합니다. A K K = A. 이것은 XOR을 스트림 암호와 일회용 패드의 기초로 만듭니다.
예: 키 10110010으로 바이트 01001101 (ASCII에서 'M' 문자) 을 암호화합니다.
- 일반 텍스트: 01001101
- 키: 10110010
- XOR (암호): 11111111
- 같은 키로 다시 XOR: 01001101 = 'M'
현대 암호화의 키 크기:AES-128은 128-비트 키를 사용하며, 이는 2128 ~ 3.4 x 1038의 가능한 키가 있다는 것을 의미합니다. 이것은 관찰 가능한 우주의 원자 수보다 많습니다. AES-256은 256-비트 키를 사용하여 2256의 가능성을 가지고 있습니다. 가장 빠른 슈퍼 컴퓨터조차도 이러한 키 공간을 부러뜨릴 수 없습니다. 각 추가 비트는 검색 공간을 두 배로 증가시킵니다. 그렇기 때문에 키 길이는 암호학에서 기하급수적으로 중요합니다.
SHA-256과 같은 해시 함수는 모든 입력에서 256비트 (32바이트) 의 바이너리 출력을 생성합니다. 입력의 단일 비트 변경조차도 완전히 다른 해시를 생성합니다. "파수지 효과"라고 불리는 속성으로 해시는 데이터 무결성을 확인하고 암호를 저장하고 블록체인 기술을 지원하는 데 유용합니다.
이진 및 양자 컴퓨팅:고전적 컴퓨터는 이진 비트 (0 또는 1) 를 사용하지만, 양자 컴퓨터는 양자 상태의 두 상태의 중첩에 동시에 존재할 수 있는 큐비트를 사용한다. 고전적 256 비트 키에는 2256 개의 가능한 값이 있으며 순차적으로 확인되어야 한다. Grover의 알고리즘을 실행하는 양자 컴퓨터는 √(2256) = 2128 연산으로 이 공간을 검색할 수 있다. 이 때문에 양자 이후 암호학이 개발되고 있는데, 양자 적들에게서도 안전하게 유지되는 이진 기반 암호화 시스템을 만드는 것이다.
자주 묻는 질문
왜 컴퓨터는 십진수 대신 이진수를 사용합니까?
전자 회로는 단지 두 가지 다른 상태로 가장 신뢰할 수 있습니다: 켜져 (고전압 ~ 1) 그리고 꺼져 (저전압 ~ 0). 십진수를 위해 10 개의 다른 상태를 나타내는 것은 훨씬 더 정확한 전압 제어가 필요하며 전기 소음에 훨씬 더 민감할 것입니다. 이진의 단순성은 수십억 개의 트랜지스터가 초당 수십억 개의 동작으로 GHz 속도로 안정적으로 작동 할 수있게합니다.
바이트가 담을 수 있는 가장 큰 숫자는 무엇일까요?
바이트 (8비트) 는 28 = 256개의 다른 값을 나타낼 수 있다. 서명되지 않은 정수에는: 0에서 255. 서명된 정수에는 (두의 보충): -128에서 127. 이진에서 최대 서명되지 않은 바이트 값은 111111112 = 255; 헥스에서는 FF이다.
음수를 어떻게 이진수로 변환할까요?
2의 보완을 사용한다: (1) 양수 버전을 이진수로 변환한다, (2) 모든 비트 (0->1, 1->0) 를 뒤집는다, (3) 1을 더한다. 예: 8비트의 -13: +13 = 000011012, 플립 비트 = 111100102, 1을 추가 = 111100112. 이것은 모든 현대 컴퓨터가 음수 정수를 저장하는 방식이다.
이진수와 헥사데시멀의 차이점은 무엇일까요?
둘 다 컴퓨팅에 사용되는 위치 숫자 시스템이다. 이진수 (기반-2) 는 컴퓨터의 고유 언어인 0과 1만을 사용한다. 헥사데시멀 (기반-16) 은 0 - 9과 A - F를 이진수에 대한 컴팩트한 표기법으로 사용한다. 4개의 이진 숫자는 정확히 1개의 헥사 숫자에 해당한다. 헥사는 메모리 주소, 색상 코드 (#RRGGBB), 기계 코드 등에 사용되는데 이는 원본 이진수보다 더 컴팩트하고 읽기 쉽기 때문이다.
비트별 연산은 어떤 용도로 사용되나요?
비트별 연산 (AND, OR, XOR, NOT, shifts) 은 정수 내의 개별 비트들을 조작한다. 일반적인 용도: 비트 플래그와 권한 (Unix chmod), 짝수/방정수 (n & 1), 2의 세로 빠른 곱셈/분배 (비트 이동), 암호화 알고리즘, 해시 함수, CRC 오류 탐지, 네트워크 서브넷 마스크, 게임 개발 (단 하나의 정수 내의 컴팩트 상태 저장).
바이너리 부동 소수점 (Binary Floating Point) 은 무엇이며, 프로그래밍에서 0.1 + 0.2 ≠ 0.3은 왜일까요?
대부분의 현대 컴퓨터는 IEEE 754 바이너리 부동 소수점을 사용하며, 이진법으로 소수를 나타냅니다. 1/3 = 0.3333...이 십진법으로 정확하게 표현될 수 없듯이, 1/10은 이진법으로 정확하게 표현될 수 없습니다 (그것은 무한히 반복되는 이진법 분수입니다). 이것은 작은 라운딩 오류를 유발합니다. 대부분의 언어에서는 0.1 + 0.2 = 0.30000000000000004입니다. 정밀한 재정 계산을 위해 정수수수 계산 (센트에서 작동하는 것, 달러가 아닌) 또는 십진 도서관을 사용하십시오.
데이터 저장과 파일 크기에 바이너리는 어떻게 사용되나요?
스토리지는 바이트 (8 비트), 킬로바이트 (1,024 바이트), 메가바이트 (1,024 KB), 기가바이트 (1,024 MB) 등으로 측정된다. 참고: 하드 드라이브 제조업체는 SI 접두사 (1 KB = 1,000 바이트) 를 사용하지만 운영 체제는 바이너리 접두사 (1 KiB = 1,024 바이트) 를 사용하므로 스토리지를 구입할 때 명백한 "잃어버린 공간" 불일치가 발생합니다. 1 TB 드라이브는 1,000,000,000,000 ÷ 1,073,741,824 ~ 931이기 때문에 Windows에서 ~ 931 GiB를 나타냅니다.
바이너리 코딩 된 소수 (BCD) 는 무엇입니까?
BCD는 각 소숫자를 4비트 바이너리 그룹으로 암호화합니다: 0=0000, 1=0001, ..., 9=1001. 따라서 BCD의 소숫자 93은 1001 0011입니다. BCD는 금융 시스템 (플로잉 포인트 라운딩 오류를 방지), 디지털 시계 및 디스플레이 (7 세그먼트 디스플레이가 BCD를 직접 디코드), 오래된 메인프레임 시스템에서 사용됩니다. 순수한 바이너리보다 공간 효율이 낮지만 중요한 응용 프로그램에서 소숫자-비너리 변환 오류를 제거합니다.