Rumah > Soal Jawab > teks badan
这是我在一篇文章中看到的图片。
我百度查了下,内存中的栈,高位地址在上
,每次压栈(int这类),都会将地址减去1个字节,然后将值放入栈。
但是这张图,在对操作数栈
做压栈操作的时候,却从底下往上放了
。不知道是我理解错了,还是作者的一个失误。
谢谢指点
迷茫2017-04-18 10:52:18
Saya melihat gambar lain dalam artikel ini, dan gambar yang melibatkan 操作数栈
semuanya dari bawah ke atas
大家讲道理2017-04-18 10:52:18
Pertama sekali, jika int a dan int b disimpan secara berterusan dalam tindanan, maka alamat memori b mestilah 4 bait lebih besar daripada alamat a, bukan 1 bait!
Bagi mod besar-endian atau mod kecil-endian, mari kita mulakan dengan perduaan Unit storan minimum data dalam tindanan ialah bait, dan storan dalam bait ditetapkan dalam mod kecil-endian!
Data heksadesimal yang sama 0x3F00 disimpan dalam tertib 00 3F dalam mod endian kecil, dan dalam mod endian besar susunan storan ialah 3F 00. Secara terang-terangan, ini bermakna sama ada bait tertib rendah disimpan dahulu atau bait tertib tinggi disimpan dahulu.
Mod storan Java berkaitan dengan CPU komputer, tetapi tidak kira big-endian atau little-endian, mod storan dan analisis adalah bertentangan, yang bermaksud bahawa int yang sama akan mempunyai hasil pengiraan yang sama tanpa mengira besar- penyimpanan endian atau little-endian daripada.
Sila betulkan saya jika terdapat sebarang kesilapan atau ketinggalan dalam jawapan anda