16 진수로 0-255를 가질 수 있고 2 문자로 저장할 수 있으므로 데이터를 압축하고 색상, IP 및 MAC 주소를 포함한 모든 종류의 항목에 사용됩니다.
내 질문은 왜 16 비트에서 멈췄습니까 (또는 가장 일반적으로 사용되는 이유)? 알파벳에는 32 비트 용으로 충분한 문자가 있으며, 이는 동일한 공간 내에 0-65536의 범위를 제공하여 16 백만이 아닌 280 조 색상을 허용 할 수 있습니다. 문자를 대소 문자를 구분하고 두 개의 기호를 추가하면 64 비트로 이동하여 최대 43 억 개의 값을 두 문자로 표현할 수 있습니다.
이것이 효과가 있다고 생각하는 상황의 몇 가지 예 :
IPv4가 부족합니다. v6이 출시되는 것을 알고 있지만 매우 길고 기억하기 어려울 것입니다. 192.168.0.1 주소를 가져 오면 C0.A8.0.1로 저장할 수도 있습니다. 64 비트 16 진수를 사용하지만 여전히 최대 8 자까지 유지하면 40 억 대신 280 조 조합을 가질 수 있으며이 문제는 발생하지 않습니다.
위에서 언급했듯이 훨씬 더 넓은 범위의 색상을 제공합니다. RAW 사진 형식은 8 개가 아닌 컬러 채널당 32 비트로 기록되며 파일 크기가 크게 증가한다는 단점이 있습니다. RGB 값이 16 진수로 저장된 경우 색상 범위를 늘려도 파일 크기가 변경되지 않아야합니다. 픽셀 당 6 비트 이내로 저장되지만 기본 번호는 더 높기 때문입니다. 대신 픽셀 당 96 비트의 수치로 기록되어 1600 %의 매우 불필요한 증가로 사진이 20MB 이상으로 남습니다 ( 온라인 계산기 에 따르면 32 비트 색상의 4K RAW 비디오는 최대 2.5GB까지 증가 할 수 있음) 초당).
이 부분은 실제로 질문과 관련이 없지만 숫자를 2 진수에서 88 진수 (그 후 기호에서 제외됨)에 이르는 다른 기본 값으로 변환 할 수있는 스크립트를 작성하여 쉽게 가능함을 보여줍니다. 비슷한 것을 구현합니다. 예를 들어, 다음은 66000의 출력입니다.
Base 2 : 11111111111110000
Base 16 : 101D0
Base 32 : 20EG
Base 64 : G7G 관심이있는 사람이 있으면
코드가 여기 에 있습니다. 그래도 몇 가지 버그가 있습니다. Maya 내에서. 주제에서 약간 벗어 났지만 일반 16 진수는 원래 숫자보다 약 20 % 적은 비트로 보이며 기본 88은 거의 50 % 감소한 것 같습니다.
마지막 질문 : 사진을 16 진수로 저장하는 아이디어를 시도한 사람이 있습니까? 64 비트 16 진수를 사용하고 [64; 1920; Bgh54D; NgDFF4; ...]와 같은 데이터로 사진을 저장하면 잠재적으로 작동합니까? 그렇지 않다면 나는 그것을 할 수있는 무언가를 만들려고 할 것입니다.
내가 질문을 올바르게 읽고 있다면 더 큰 염기를 사용할 때 데이터가 '축소'되지만 실제로는 그렇지 않다고 말하는 것입니다.
자신의 예를 들어 보자 : Base 2 : 11111111111110000 Base 16 : 101D0 Base 32 : 20EG Base 64 : G7G
16 진수가 표준이기 때문에 101D0을 사용합니다. Base 64 표기법을 사용하면 어떻게 될까요?
대답은 기본적으로 아무것도 아닙니다. 장치에서 데이터를 비트 단위로 저장하고 처리하고 있기 때문입니다. 101D0 대신 G7G가 있다고해도 여전히 장치에 11111111111110000을 저장하고 작업하고 있습니다. 숫자 5가 있다고 상상해보십시오. 이진수로 입력하면 101이됩니다. 101은 3 자리이고 5에는 1이 있습니다. 이것은 5가 101보다 더 압축되어 있다는 것을 의미하지 않습니다. 숫자를 0101로 계속 저장하고 있기 때문입니다. 너의 컴퓨터.
예제, IPv6 항목 또는 MAC 주소를 유지하기 위해 (이 예제에서는 점으로 구분 된 두 자리 숫자의 문자열과 동일합니다).
16 진수로 00 : 00 : FF : 01 : 01이 있습니다. 그것이 당신이 그것을 정기적으로 표현하는 방법입니다. 이것은 바이너리로 0000 0000 0000 0000 1111 1111 0000 0001 0000 0001로 변환됩니다 (이제 16 진수를 사용하는 이유를 알기 시작했을 것입니다). 16 = 2 ^ 4이므로 16 진수 하나를 이진수 4 개로 변환하고 결과를 합쳐 실제 이진 문자열을 얻을 수 있기 때문에 쉽습니다. 기본 64 시스템에서 GG : HH : 01 : 02 : 03과 같은 것이 있으면 각 문자는 6 비트로 변환됩니다.
그렇다면 이것의 문제는 무엇입니까? 컴퓨터가 내부적으로 2의 거듭 제곱으로 작동한다는 사실. 그들은 당신이 사용하는 표기법에 대해 정말로 신경 쓰지 않습니다. CPU 레지스터, 메모리 및 기타 장치에서는 6 비트 그룹으로 나뉘어 진 데이터를 볼 수 없습니다.
요약 : Hexadecimal은 바이트가 두 문자 (0-F)로 표현 될 수 있기 때문에 인간이 이진을 더 쉽게 볼 수 있도록 도와주는 표기법입니다. 컴퓨터에 저장되고 처리되는 것은 사용하는 표기법에 관계없이 동일합니다. 읽어.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다