我想在32位體系結構中爲64位整數創建數據結構。
任何想法做到這一點將不勝感激。如何在32位體系結構中爲64位整數創建數據結構?
struct make
{
int a;// how to make 64 bit integer in a 32 bit architecture.
}
注:我有一個問題,將在32位Intel處理器編譯C程序在32位AMD處理器的成功執行?
我想在32位體系結構中爲64位整數創建數據結構。
任何想法做到這一點將不勝感激。如何在32位體系結構中爲64位整數創建數據結構?
struct make
{
int a;// how to make 64 bit integer in a 32 bit architecture.
}
注:我有一個問題,將在32位Intel處理器編譯C程序在32位AMD處理器的成功執行?
使用 long long
在IA32體系結構,64位整數(long long
)使用兩個32位寄存器(EAX和EDX)來實現。
,它真的很好的答案。我喜歡你解釋上下文的方式。你可以舉一些使用兩個32位寄存器來產生64位整數的例子。 –
@SrinivasThanneeru請參閱http://stackoverflow.com/questions/3072444/long-long-int-on-32-bit-machines –
@SrinivasThanneeru:你不需要;編譯器會爲你做。 – Clifford
無論架構如何,long long
數據類型通常都是64位。
編輯:關於您的筆記,AMD和Intel處理器使用相同的指令集架構。所以,是的,在英特爾芯片上編譯的程序應該在AMD芯片上運行。 (我假設你正在談論桌面CPU。)
我可能是錯的,但嚴格地說'long long'*至少是* 64位。我會使用'
int64_t的typedef是什麼?我認爲C標準只說int
@zztops是的,我問的是桌面cpus。你說什麼令人印象深刻,現在讓我知道如果他們使用不同的指令集拱? –
您應該單獨發佈第二個問題。 – Clifford