最近我看到了一個編譯器如何組合兩個32位整數,它們是一個類的屬性值,並將它們存儲爲一個64位整數。我現在的問題是,爲什麼這樣做?結合整數有什麼優勢?爲什麼要將兩個32位整數合併成一個64位整數?
例如,如果我們有一個類
class FooBar {
int x = 1;
int y = 100;
}
以下屬性,以便代替
i32 = 00000001
i32 = 01100100
我們得到:
i64 = 0000000101100100
你爲什麼要結合呢?
我的猜測是該寄存器使用64位。它只使用一個寄存器來存儲這兩個寄存器,而不是使用兩個寄存器。 –
爲什麼不呢?如果機器以64位整數工作效率更高,那麼這可能是一場勝利。你爲什麼在乎? –
CPU通常不具有類型。像「int」這樣的東西是你的程序的一個屬性,而不是機器代碼的屬性。將這種「組合」稱爲「合併」並不合適,因爲前後是完全不同域的組成部分。 –