2014-10-05 50 views
2

基本上,我想用MIPS中的分支語句來比較兩個字符。雖然我不確定使用什麼指令。反正我會告訴我的僞代碼我C.比較MIPS中的字符並進行字符運算

The array M contains characters. 
if(M[i] >= "0" && M[i] <= "9") 
{ 
    ascii_to_bin += M[i] - "0" 
} 

它寫道,僅僅是if語句的一個,但它封裝了每一個問題我的時刻。在條件語句中進行比較時,我不知道使用哪些指令。此外,行$ascii_to_bin += M[i] - "0";真的不知道如何在MIPS中進行字符算術。

+0

我不是100%的信心,這就是爲什麼這是一個評論,而不是一個答案,但我不不要以爲MIPS(或任何彙編語言)有類型的概念。我很確定你只能通過操縱字符的ASCII值來達到這個目的。 – 2014-10-05 03:25:47

+0

你通過操縱ASCII值是什麼意思? – 2014-10-05 03:46:11

+0

也許我會做出這個答案。掛上 – 2014-10-05 06:20:31

回答

0

正如您可能知道的那樣,您可以對C(和C++,Java等)中的字符進行算術運算的唯一原因是char類型可以通過它們的ASCII值被隱式轉換爲int類型。然而,MIPS(和更廣泛的彙編語言)沒有類型的概念;包含「字符」的變量的任何概念都是由程序員強加的,而不是由機器強加的。

那麼這是什麼意思?這意味着你正在直接使用整數值。如果你從內存中拉出你所知道的字符a,你實際上是而不是使用ASCII值,97。你可以比較,就好像它是任何其他整數(因爲它任何其他整數)。

所以,你的if語句會再看看大致是這樣的(僞代碼):

If M[i] >= 48 and M[i] <= 57 then: 
    ascii_to_bin += M[i] - 48 
相關問題