16 진 편집기를 2 진 편집기라고하는 이유는 무엇입니까?


84

16 진수와 2 진수는 서로 다른 두 가지 기준입니다. 16 진수는 이해하기 쉽고 사용하기 쉽고 바이너리 버전이 더 편리합니다.

그러나 16 진 편집기가 이진 편집기라고 들었습니다. Google에서 "이진 편집기"를 검색하면 16 진 편집기가 표시됩니다.


3
16 진은 이진 데이터의 읽기 쉬운 표현입니다.
Salman A

답변:


188

바이너리 편집기는 A와 같은 파일 편집 이진 파일을 .

이진 파일-Wikipedia

이진 파일은 텍스트 파일이 아닌 컴퓨터 파일입니다. "이진 파일"이라는 용어는 종종 "비 텍스트 파일"을 의미하는 용어로 사용되며 일반적으로 바이트 시퀀스로 생각됩니다. ... 이진 파일에는 일반적으로 텍스트 문자 이외의 것으로 해석되는 바이트가 포함됩니다.

헥스 편집기 의 일종 이진 편집기 데이터로 표현되는 진수 .

16 진 편집기-Wikipedia

헥스 편집기 (또는 파일 편집기 바이너리 또는 바이트 편집자 ) 컴퓨터 파일을 구성하는 기본 이진 데이터의 조작을 가능하게하는 컴퓨터 프로그램의 유형이다. '16 진수 '라는 이름은 16 진수입니다. 16을 기본으로하는 숫자의 표준 표현입니다.


85

용어는 어렵다. 사람들마다 사물에 대한 모든 종류의 다른 이름이 있습니다.

이 경우, 나타납니다 진수 반면, "16 진수 편집기"에서는, 각 바이트의 값을 기존의 사람이 읽을 수있는 표현을 의미 바이너리 "바이너리 편집기"에서 당신이 실제로 바이트의 파일을 편집하고있는 개념을 말한다 상위 레벨 텍스트 인코딩 등을 고려하지 않고 계층 (및 컴퓨터는 바이트를 이진으로 저장) 같은 이유로 상위 텍스트 형식으로 쉽게 표현할 수없는 파일을 "이진 파일"또는 "이진"이라고합니다.

기술적으로 잘못된 것도 아닙니다. 그들은 단지 다른 각도에서 명명 문제를 겪습니다. 개인적으로, 나는 "이진 편집자"가 균형을 혼란스럽게한다는 것에 동의하는 경향이있다.


58

이진 편집기 표시 (이진)

00000000 | 11111011 11111011 11111011 11111011 11110101 11111011 11111011 11111011
00001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00010000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00011000 | 11110101 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00100000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00101000 | 11111011 11111011 11101111 11111011 11111011 11111011 11111011 11111011
00110000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00111000 | 11111011 11111011 11111011 11101111 11111011 11111011 11111011 11111011
01000000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01010000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01011000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01100000 | 11111011 11111011 11111011 11111011 11111011 11101111 11111011 11111011
01101000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011

이진 편집기 표시 (16 진수)

00 | fb fb fb fb f5 fb fb fb fb fb fb fb fb fb fb fb
10 | fb fb fb fb fb fb fb fb f5 fb fb fb fb fb fb fb 
20 | fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb fb 
30 | fb fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb 
40 | fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb 
50 | ef fb fb fb fb fb fb fb ef fb fb fb fb fb fb fb 
60 | fb fb fb fb fb ef fb fb fb fb fb fb fb fb fb fb

이진 편집기를 사용하면 이진 단위로 바이트를 처리 할 수 ​​있지만 기본 2는 너무 작아서 작은 숫자를 표시 할 수 없습니다.

기본이 아닌 원시 이진

일반적으로 이진 편집기 에서 " 이진 " 은 기본 2를 나타내지 않으며 실제로는 " 텍스트 편집기 "의 반입니다. 차이점은 텍스트 편집기는 텍스트를 표시하도록 설계되었으므로 비 인쇄 문자, 줄 바꾸기, 제어 문자, 유효하지 않은 utf-8 코드 단위 등을 안전하게 처리 할 필요가 없습니다. 파일을 열고 즉시 저장하는 것만으로도 편집기 내부 변환, 오류로 인해 파일을 변경할 수 있습니다.

다른 방법으로 바이너리 편집기는 데이터에 의미를 부여하려고 시도하지 않고 사용자가 바이트 / 비트 / 워드 스트림으로 안전하게 처리하도록합니다.

16 진 편집기

완벽한 이진 편집기는 가능한 모든 이진 형식을 알고 편집 할 수 있지만 모든 사람이 고유 한 이진 형식을 만들 수 있고 자주 변경되므로 모든 형식을 지원하는 것은 무의미합니다.
에디터가 할 수있는 최선의 방법은 바이트 자체를 보여주는 것입니다. 이미 논의한 16 진법의 16 진수는 매우 편리합니다!

또한 숙련 된 사용자는 bin을 읽을 때 정신적으로 16 진으로 변환 할 수 있습니다.
16 진수로 작성된 바이트에서 비트를 설정 / 가져 오려면 bin으로 작성된 바이트보다 더 많은 노력이 필요하지 않습니다.
솔직히 바이너리보다 읽기 쉬운 16 진수를 찾았 습니다.


1
차이점을 보여주는 좋은 예입니다. 실제로 그것들을 나란히 보는 것은 육이 훨씬 더 멋지게 보이게합니다
DrZoo

1
@ DrZoo 비트 필드를 다루지 않는 한 이진 표현이 훨씬 좋습니다! en.wikipedia.org/wiki/Bit_field .
misha256

6
misha256 : 솔직히 16 진수를 볼 때 바이너리가 보입니다. 나는 "f"를 읽지 만 나의 뇌는 즉시 "1111"이라고 말합니다. 매트릭스를 컴팩트 한 형태로 보는 것과 같습니다. :)
tdrury

4
"2
Kelvin

5
@ tdrury 좋은 지적, 나는 당신이 표현 방법에 관계없이 당신이 볼 필요가 무엇인지 "시작"하기 시작한다고 생각합니다. 하하, 매트릭스! 기계 언어를 16 진수 나 10 진수로 행복하게 코딩하고 둘 사이를 자유롭게 변환 할 수있는 사람과 학교에 다니는 사람을 생각 나게합니다. 그는 모든 op 코드를 알고 있었으며 비트 필드와 기타 데이터 구조를 그의 첫 언어와 같이 보았습니다. 그들은 64 일 동안 코모도어를 생각했지만 (아주 더 단순한 날) 여전히 인상적인 재능이었습니다.
misha256

15

16 진 편집기를 2 진 편집기라고하는 이유는 무엇입니까?

요약:

16 진 편집기는 2 진 컨텐츠를 16 진 형식으로 표시하고 16 진 숫자를 변경할 수 있도록하여 2 진 파일을 직접 편집하는 데 사용됩니다.

노트:

  • 16 진 편집기를 사용하면 데이터 해석을 시도하는 다른 프로그램 대신 파일의 원시 데이터 내용을 편집 할 수 있습니다.

  • 이진 편집기 또는 바이트 편집기라고도하는 16 진 편집기

  • 이진 편집기 또는 바이트 편집기를 호출하는 것은 편집기가 이진 숫자 또는 바이트가 아닌 16 진 숫자를 변경하므로 실제로 올바르지 않습니다 (물론 파일을 저장하면 기본 이진 숫자 및 바이트가 변경됨)

바이너리 사용 16 진수를 편집하는 이유는 무엇입니까?

16 진 형식으로 데이터를 표시하고 16 진 값을 변경하여 2 진 파일을 직접 보거나 편집 / 수정하는 것이 더 쉽습니다.

  • 이진수를 나타내는 편리한 방법 중 하나는 16 진수를 사용하는 것입니다.

  • 역사적으로 컴퓨터는 어셈블리 언어로 프로그래밍되었으며 코드는 프로세서 명령어 및 메타 문 (지시문, 의사 명령어 및 의사 ops로 다양하게 알려져 있음), 주석 및 데이터를 사용하여 작성되었습니다.

    • 코드는 어셈블러를 사용하여 이진으로 변환됩니다. 그런 다음 이진 코드를 프로세스에로드하여 실행할 수 있습니다.

    • 소스 코드가 없으면 프로그램을 바이너리 대신 16 진수로 표시하는 편집기를 사용하여 프로그램을 직접 수정하는 것이 더 쉽습니다.

  • 이진 코드는 16 진수로 변환 할 때 사람이 더 쉽게 읽을 수 있습니다.

    예를 들어, 어떤 사람이 암기하거나 다른 사람에게 읽어주는 것이 더 쉬운가?

    10110000 01100001
    

    또는

    B0 61
    
  • 각 16 진수는 4 개의 이진수 (비트)를 나타냅니다. 하나의 16 진수는 10 진수 또는 바이트 (8 비트)의 절반 인 니블을 나타냅니다.

    예를 들어, 바이트 값의 범위는 0-255 (10 진수)이지만 00-FF 범위의 두 16 진수로 더 편리하게 표시 될 수 있습니다.

  • 16 진수는 일반적으로 컴퓨터 메모리 주소를 나타내는 데 사용됩니다.


3
또한 Base 64는 기억하기가 훨씬 쉬워 보이지만 Hex는 2 문자 ⇒ 1 바이트를 매핑하는 훌륭한 속성을 가지고 있기 때문에 고수합니다.
PythonNut

9

여러 프로그래밍 언어 및 운영 체제 규칙에 따라 두 가지 종류의 파일이 있습니다.

  • 텍스트 라인으로 구성된 텍스트 파일. 각 라인은 인쇄 가능한 문자 세트 (일부 제어 문자 포함)로 구성되며 라인 끝으로 종료됩니다.
  • 텍스트 파일에서 금지되는 널 바이트를 포함하여 임의의 바이트 세트를 포함하는 2 진 파일.

텍스트 편집기는 텍스트 파일을 열 수 있지만 이진 편집기는 처리하는 파일 종류에 제한이 없습니다.

이진 편집기는 16 진법으로 데이터를 입력하고 입력 할 수있는 경우가 많기 때문에 편리합니다 (보통 ASCII 문자도 표시하고 교체 할 수 있음). 순수한 이진법으로 만 데이터를 표시하면 데이터를 읽기 어렵게 만들 수 있습니다.

널리 사용되는 이진 편집기의 이름은 HexEdit 입니다.

여기에 이미지 설명을 입력하십시오

이진 편집기와 16 진 편집기 모두를 올바르게 고려합니다.

여기에 이미지 설명을 입력하십시오

16 진수로 데이터를 표시하지 않고 텍스트 만 표시하는 옵션도 있습니다

여기에 이미지 설명을 입력하십시오


5

오늘날 대부분의 컴퓨터에있는 파일은 8 비트 바이트 입니다. 그것은 일반적으로 파일을 직접 편집 할 때 작업하는 추상화입니다.

물론 데이터의 개별 비트를 실제로 편집하는 경우가 있지만 자주는 아닙니다. 비트 7 설정과 같은 일반적인 비트 수준 작업은 16 진수-1000 0000 base2 = 80 base16 으로 쉽게 수행 할 수 있으므로 16 진수 값이 80 base2 비트 7보다 작 으면 8 base16 을 추가 하면 설정됩니다.

16 진수가이 유형의 활동과 더 관련이있는 다른 이유 :

  • 알려진 값을 시각적으로 스캔 할 때 16 진 값을 더 쉽게 인식 할 수 있습니다. 예를 들어 ASCII 공간 인 20 base16 = 32이지만 동일한 값 0010 0000 base2 는 다른 덤프 된 값의 홍수와 같이 인식하기가 쉽지 않습니다.

  • 실제로 정기적으로 사용해야하는 오래된 시스템의 화면 공간이 제한되었을 수 있습니다 (예 : 40 열). Apple IIe ROM 모니터는 훌륭한 예이며, 40 열 통합 비디오에 16 진수로 메모리를 덤프 할 수 있으며, 80x24 화면에서 값을 2 진으로 확장하면 공간을 빠르게 벗어날 수 있습니다. 이러한 오래된 시스템의 경우 입력 된 ASCII를 올바른 값으로 다시 변환하는 루틴을 작성하는 것이 더 쉽습니다. 4K의 RAM이 많은 메모리로 간주되고 시스템에 ROM이 많을 수있는 경우 중요합니다.

  • "16 진수"라는 단어는 더 잘 들리고 짧으며 입력하기가 더 쉽습니다.


5

사람들이 16 진수를 사용하는 경우 일반적으로 이진수로 생각하고 16 진수를 속기 표기법으로 사용합니다.

16은 2의 거듭 제곱입니다. 8도 2의 거듭 제곱입니다. 따라서 16과 8은 이진의 속기 표기법으로 사용되었습니다. 바이너리와 2의 거듭 제곱 사이의 수동 변환은 쉽습니다. 대상베이스가 나타내는 크기로 비트를 그룹화 한 다음 해당 숫자를 사용하십시오.

8 진법 인 8 진법은 많은 초기 컴퓨터에 널리 사용 되었기 때문에 Unix에는 od8 진법 덤프 명령이 있습니다. 각 8 진수는 한 번에 3 비트를 나타냅니다. 그러나 8 비트 바이트 기반 시스템에서는 불편했습니다.

16 진수 16 진수 16 진수 16 진수는 숫자 당 4 비트를 나타냅니다. 이것은 요즘 훨씬 일반적으로 사용되는 표현입니다.


3

이것은 컴퓨터가 정보를 저장하는 방법을 나타냅니다.

기본적인 수준의 컴퓨터 사용에 01데이터를 표현하는,이 비트라고합니다. 함께 그룹화 된 8 비트는 바이트입니다. 16 진법은 16 진법이므로 16 자 ( 0-9, A-F)를 갖습니다 . 문자를 저장하려면 8 비트 또는 1 바이트가 필요합니다.

따라서 16 진수 13( 1910 진수)는 0001 00112 진수 와 동일 합니다. 이진보다 16 진을 읽는 것이 더 쉽습니다.


2

내가 아는 가장 초기 바이너리 편집기는 디스어셈블러였습니다. 즉, 편집 기능은 실행 가능한 이진 파일의 분해 및 패치 작업의 부산물이었습니다.

그러한 적용의 좋은 예는 Hiew입니다.

어셈블 된 코드 (어셈블러 명령어)는 종종 16 진 문자열로 표시됩니다. 나는 이것이 현대의 혼란이 일어나는 곳이라고 생각합니다. 사람들은 자신이 무엇을 다루는 지 모릅니다.


2

컴파일 된 실행 가능한 파일 (예 : Windows의 somefile.exe)은 프로세서 수준 코드로 컴파일되어 이진 수준에서 프로세서가 직접 실행할 수 있기 때문에 "이진"이라고도합니다.

바이너리를 편집하고 있습니다. 16 진수는 인간에게 유용하기 때문에 16 진수로 표시됩니다.


예, 그러나 많은 데이터 파일도 이진입니다. 적절한 응용 프로그램에서 읽을 때 공간과 번역을 절약합니다. 또한 텍스트 파일도 종종 암호화되거나 압축되어 이진 파일이됩니다.
Joe

1

나는 당신의 질문에 문자 적으로 대답 할 것입니다.

먼저 약간의 설명이 필요합니다. 물론 16 진 편집기를 의미합니다. 16 진수6을 의미 하고 10 진수10을 의미 하므로 16 진수16을 의미 합니다. Bi2를 의미 합니다. 당신이 말했듯이, 이들은 두 개의 다른 기수, 기저 16과 기수 2입니다. 이는 16 진수를 정의하는 데 16 개의 자리 표시 자 요소와 이진수를 정의하는 데 2 ​​개의 요소 만 필요하다는 것을 의미합니다.

당신은 말했다

If you actually search for "binary editor" on Google, you get hex editors.

이제 질문에

Why is that? 

이것은 문자 부분입니다. Google은 대부분의 사람들이 검색 결과가 만족 스럽다고 생각한 것을 반환합니다. 기계 학습 알고리즘은 문자열 "editor"의 컨텍스트 내에서 문자열 "16 진"및 "16 진"을 "이진"과 연관시킵니다. 대부분의 사용자는 "이진" "편집기"를 검색 한 후 "16 진" "편집기"에 만족했기 때문에 이것이 우리가 얻는 것입니다. 그렇지 않으면 의미가 없습니다.

What is the connection?

말 그대로 구글이 의미를 반환하지 않기 때문에 아무 것도 없다. Google은 이진수와 16 진수의 차이점을 알지 못하며 사람들이 검색 엔진을 사용하는 방법 만 표로 만들 수 있습니다.

16 진수와 이진 사이의 실제 연결을 요청한 경우 위의 설명으로 돌아가서 16 진수 요소 하나는 16 가능성 또는 4 비트를 인코딩하지만 이진 요소는 2 가능성 또는 1 비트를 인코딩합니다. 한 바이트로 8 비트의 정보를 인코딩하려면 2 개의 16 진 요소 또는 8 개의 이진 요소가 필요합니다. 따라서 이진 또는 16 진 편집기는 서로 다른보기에서 동일한 데이터를 나타 내기 때문에 서로 바꿔서 사용할 수 있습니다.


1

개별 비트를 변경할 수 있기 때문에 "이진"이라고합니다.

UI는 일반적으로보다 편리하기 때문에 기본적으로 16 진법으로 작동합니다. 예를 들어 ffffe0007d13e650 화면에서보다 적은 공간을 차지 1111111111111111111000000000000001111101000100111110011001010000합니다. (이것은 구성 예제가 아니라 디버깅 문제의 실제 주소입니다.) 16 진 코드에서 ASCII 또는 유니 코드 문자와 같은 것을 "보는"것이 더 쉽습니다.

그러나 대부분 원한다면 바이너리 비트 표시로 전환됩니다.

(우리는 왜 공원 도로에서 운전하지만 차도에서 주차합니까? 그것은 단지 단어입니다. 영어는 종종 이상합니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.