十六進制編輯器的用途是什麼?它是像C還是Python這樣的編程語言,我如何學會編程?另外,有沒有什麼方法可以用二進制代碼?我讀了一篇關於史蒂夫喬布斯的自傳,有一次我想他的一個同事不得不用二進制編寫一個程序,而且學習如何做似乎是一件非常酷的事情。我沒有解決現實世界的問題,我只是好奇而已。我對計算機有一個非常基本的理解,所以假裝像你一樣向五年級的學生解釋這一點。什麼是十六進制編輯器?
回答
我們使用的大多數編程語言都處於較高水平,因爲在機器能夠真正識別它們之前,它們被翻譯了好幾次。你的CPU實際上是執行非常簡單的指令,用0和1編碼,比如add,logical或者從存儲器地址加載一個數字到寄存器(所以我們可以添加或操作數值)等。
那麼這個翻譯如何工作?那麼假設你已經用C編寫了一個簡單的hello世界程序。它需要被翻譯成機器代碼,稱爲編譯過程。在此階段,您的代碼將根據您的特定CPU(程序集)轉換爲中間語言。這應該是人類可讀的機器指令(前面提到的添加,加載等)。然後機器指令被進一步轉換爲0和1。
例如,在MIPS CPU架構添加的樣子:
0000 0000 0010 0010 0001 1000 0010 0000
這基本上說,添加存儲在寄存器1和2的值,並把結果在寄存器3
事情很長,所以我們通常不是以二進制編寫,而是以十六進制編寫。四0和1的壓縮成一個數字,我們得到:
00 22 19 20
所以,當你在一個十六進制編輯器打開一個可執行文件,所有這些值包括例如像上面的說明,靜態數據,圖書館和。當你編輯這些值時,假設你知道你在做什麼,你可以改變軟件的行爲。
但是,你不想用二進制編寫程序。這是非常痛苦的。我建議看看彙編以及CPU的工作方式,如果你更感興趣。
一些優點你可能會在機器內的代碼比編寫C:
你得到你可以做什麼更多的靈活性。您可以在整個程序的基礎上管理您的資源,以便優化一切。飛機上的一些時間敏感儀器是用匯編編寫的。
您可以全面瞭解程序的每個部分是如何工作的。
而缺點:
- 這是非常難以保持這麼多的事情記一次。這是非常容易出錯的,而且很難調試。
- 這是非常耗時的。由於您需要查看操作代碼翻譯,因此在彙編中您的寫作生產率約爲十分之一,機器代碼更差。
- 它不是平臺獨立的。機器代碼是每個CPU架構,所以你的Windows代碼(x86架構)不能在Mac上工作,而C程序可以重新編譯並立即運行。
大多數可執行文件是二進制文件在系統中。檢查二進制內容有時可能很重要,但只用0和1讀取大文件是一項非常繁瑣的任務。這個想法是,四個0和1的每一個可以由一個十六進制符號表示:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E F.十六進制編輯器將有助於閱讀任何類型的二進制內容(例如,網絡上的文件或tcp幀)。但請注意,即使在十六進制中,您也需要很好的計算機知識來理解文件內容。
但是它對C語言有什麼優勢? –
人類不用二進制編寫計算機程序,他們使用C,Java,Python或彙編語言。二進制不是一種編程語言。十六進制編輯器的目的只是爲了更容易地分析二進制內容,有時可以稍微修改它,就是這樣 –
- 1. 什麼是十六進制?
- 2. 十六進制編輯與
- 3. 純二進制編輯器(不是十六進制編輯器)它存在嗎?
- 4. 什麼是十六進制的NULL
- 5. O_APPEND的十六進制值是什麼?
- 6. 十六進制編輯與C++
- 7. 十六進制編輯C#文件?
- 8. 十六進制編輯UTF-8文件
- 9. .NET中的十六進制編輯
- 10. 在十六進制編輯器中編寫註釋
- 11. 十六進制彙編編輯器命令入門?
- 12. 在MFC中編寫一個十六進制編輯器
- 13. 如何製作固定的十六進制編輯器?
- 14. 什麼是PHP的蟒蛇吊墜編碼('十六進制')?
- 15. 編程中十六進制值的用法是什麼?
- 16. 十六進制串&十六進制
- 17. UCS2十六進制編碼
- 18. 什麼是這種格式?二進制?十六進制?
- 19. 爲什麼HTML十進制和HTML十六進制?
- 20. PIC的十六進制反編譯器
- 21. 爲什麼地址編號在十進制和十六進制中不相等?
- 22. 將十進制轉換爲十六進制和十六進制
- 23. 爲什麼使用十六進制?
- 24. 二進制數據的十六進制編碼的目的是什麼?
- 25. Bless十六進制編輯器 - 偏移顯示
- 26. Windows窗體的十六進制編輯器控件?
- 27. 使用十六進制編輯器打開.dat文件
- 28. 爲C#推薦十六進制編輯器類?
- 29. 通過十六進制編輯器Excel Excel VBA密碼
- 30. 奇怪的記事本++十六進制編輯器插件
它只是讓你直接編輯文件的數字內容。因此,例如,如果它是一個文本文件,那麼您正在查看文本的ASCII碼,而不是文本本身。只是谷歌「十六進制編輯器」。 – lurker