簡體   English   中英

計算機如何比較十六進制和十進制值

[英]how does the computer compare the hexadecimal and decimal values

我正在查看C中的現有代碼,其中檢查是否在100到899的特定范圍內。我想再加上一個條件,使否的值可以為1FE。 我不應該將其轉換為十進制數字。 但是我需要檢查這個十六進制值。 我的疑問是,硬件將如何解釋十進制和十六進制的比較。 硬件將解釋零和一的值。 那么它將把十進制和十六進制的no轉換為二進制以檢查值嗎? (由於1FE轉換為十進制時為510,因此將包含在899號中)。請幫助理解。

int x = 0x1fe; 並且int x = 510; 與計算機完全相同(或更具體地說,對於編譯器-實際硬件永遠不會看到“ 0x1fe”或“ 510”-它只會看到二進制版本),所以您的問題沒有多大意義。

更改基數只會更改值的表示形式; 它不會改變實際值。 如果您有101 2個蘋果,並且有5 10個蘋果,則您仍然有相同數量的蘋果。

計算機使用的表示形式恰好是二進制的。 (嗯,不是“恰好”發生,而是..是的。)

我的疑問是,硬件將如何解釋十進制和十六進制的比較。

硬件沒有十進制或十六進制的概念。 對於機器,0x1FE和510是無法區分的; 它們只是完全相同的事物的兩種不同表示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM