이 사람은 Microsoft Paint에서 "Hello World"를 어떻게 코드화했습니까?
지난 며칠 동안 이것을 본 지 얼마 되지 않아 어떻게 작동하는지 알 수 없습니다.제가 말하는 비디오는 다음과 같습니다.
Stack Overflow 질문에서 가장 높은 평가를 받은 답변입니다.이 프로그램이 3개의 컴파일러에 의해 거부된 이유는 무엇입니까?
이 비트맵은 어떻게 "Hello World"용 C++ 프로그램을 표시할 수 있습니까?
BMP(DIB) 이미지는 헤더에 이어 압축되지1 않은 컬러 데이터로 구성됩니다(24bpp 이미지의 경우 픽셀당 3바이트이며 역행 순서로 저장되며 행 스트라이드가 4바이트입니다).
색 데이터의 바이트(i.e. 그들 중 누구도"지시할 수 있는"파일 format2에 의해, 그들은 각 픽셀의 색깔 때문에 오)색을 나타내는 픽셀 색과 바이트가 파일로 쓰여진 사이에 완벽한 1:1통신이다;따라서 완벽하게 선택한 색깔을 사용하며 실제로는 exce와 파일을(에서 원하는 바를 쓸 수 있다.p헤더의 변경).
생성된 파일을 메모장에서 열면 색상 데이터가 텍스트로 표시됩니다.머리글에서 선명하게 볼 수 있습니다.BM
파일 형식에 의해 필수적으로 지정됩니다.
내 생각에 이 비디오는 다음과 같이 처리되었다. 먼저 작성자는 비트맵에 필요한 크기를 계산하고 단순한 패턴으로 확장되는 색상으로 채워진 올바른 크기의 DIB 파일을 만들었다(예: all bytes 65 = > )'A'
그런 다음 비디오에 표시된 것과 같이 이러한 패턴을 "displicate" 코드로 바꿉니다.
그러나 메모장으로 모든 것을 수작업으로 만드는 것은 불가능하지 않습니다.컬러 선택 대화상자, ASCII 표 및 DIB 포맷에 대한 기본 지식으로 할 수 있지만 훨씬 더 느리고 오류가 발생하기 쉽습니다.
- RLE 압축 DIB가 있지만 이 경우 비압축 비트맵이 사용됩니다(어차피 거의 사용되지 않습니다).
- 스트라이드를 제외하고 4바이트의 행 배수를 사용하여 이를 회피했습니다.
만우절 질문에 대한 답을 말하는 것 같네요.
내 생각엔 각각의 픽셀은 2진수 표현을 가지고 있는 것 같아.소스 코드의 각 문자는 바이너리 표현을 가지고 있습니다.
프로그램을 만든 사람은 각 픽셀의 색을 알아냈을 거예요 각각의 문자와 일치하는 이진 표현을 가지고 있을 거예요
이론적인 컴퓨터 과학의 관점에서, 모든 프로그램이 비트맵으로 볼 때, 같은 일을 하는 소스 코드를 실제로 볼 수 있는 방식으로 작성될 수 있는지 물어보는 것은 흥미로울 것입니다.이러한 결과에 진지하게 관심이 있는 경우, 예를 들어 클린의 고정점 정리에 대해 읽어 보십시오.
Program-as-an-image는 코드 난독화의 한 형태로 볼 수도 있습니다.그게 특별히 실용적이었던 건 아니고...
언급URL : https://stackoverflow.com/questions/5588649/how-did-this-person-code-hello-world-with-microsoft-paint
'programing' 카테고리의 다른 글
바이너리 형식으로 인쇄할 printf 컨버터가 있나요? (0) | 2022.08.23 |
---|---|
업데이트 : 상태가 아닌 스토어를 수신하는 변환 (0) | 2022.08.23 |
VueJs - 테이블 페이지 표시 및 필터 (0) | 2022.08.23 |
줄 바꿈의 세미콜론을 대체하는 메서드를 작성하려면 어떻게 해야 합니까? (0) | 2022.08.23 |
clang을 llvm IR로 컴파일하는 방법 (0) | 2022.08.16 |