2012-09-04 40 views
0

我需要爲十六進制數字實現算術運算。所以我希望每一個算術運算,即加法,乘法,減法和除法都以16爲基數執行。在c中設置一個基數

反正有沒有設置基數?

+2

爲什麼?只需將輸入轉換爲正常的基數10並正常進行算術運算,並在打印結果時將其轉換爲十六進制。另外,我知道沒有編譯器允許更改內部基數。 –

+2

開箱即用:'int x = 0x20 + 0x10;' – hroptatyr

+0

@Joachim,我試圖乘以兩個100位十六進制數。我得到了十六進制輸入..所以我問。將一個尺寸爲天文數字的數字轉換成小數點並不聰明,我認爲。 –

回答

3

請。

現代計算機以二進制形式工作,通過直接操作代表1和0的電壓。這只是他們工作的方式,你不能用軟件來改變它。

你可以做的是改變用於I/O底座,讓你在十六進制打印出來的數字,如:

int a = 47, b = 95; 
int c = a + b; /* Look, we add two integers! */ 

printf("%x + %x = %x\n", a, b, c); /* Print terms and sum in HEX. */ 

這將打印:

2f + 5f = 8e 

注意變量是從十進制數初始化的,但我們仍可以用十六進制打印中的值。

+0

感謝ton @ unwind。我現在得到了一個開始,我想我現在可以修復輸入的東西。謝謝! :d –

相關問題