1
我試圖實現C.改進的連續的乘法算法,其中乘積寄存器的尺寸爲被乘數和乘數的兩倍的尺寸。在C中,一個int是4個字節,而一個long int是8個字節。我想獨立訪問更高和更低的32位。所以我指出的低位和高位,如:長整型高和低比特指針
long long int product = 0;
int* high = &product;
int* low = &product;
low++;
但這並沒有工作,因爲我認爲,如果一個int被分配4個字節,然後一個長整型將被分配8個字節,該指針將指向分配的內存的MSB。我不確定這是否實際上是如何分配的。任何人都可以幫我解決這個困惑。
我使用這樣做解決了這個問題:
long long int product=0;
int* low = &product;
int* high = &product;
high++;
,但我仍然感到困惑的是爲什麼它工作正常;
產品的大小應該是操作數大小的總和。 –
你需要知道字節順序。 –
[字節序(https://en.wikipedia.org/wiki/Endianness) –