Re: [問題] 提高身價的程式風格
※ 引述《Lordaeron (Terry)》之銘言:
: 標題: Re: [問題] 提高身價的程式風格
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: → Lordaeron:這麼可怕? 差1 你也要?2^63-1 03/08 23:53
: 推 kojilin:也不會是2^63-1, 你真的手邊有64bit jdk?java下int就是 03/08 23:55
: → Lordaeron:我沒寫JAVA 很久了, 多數都在寫C,十來年前就用64bit的了 03/08 23:56
: → kojilin:java下int就是2^31-1:)..ok..如果其他語言當我沒說哈哈:PY 03/08 23:57
: → Lordaeron:哪2^32-1絕對在java中裝不了500億囉. 03/08 23:58
: 推 kojilin:請用long..long就是2^63-1 03/09 00:00
我的計算機組織沒學得很好, 不過我沒記錯的話...
64 bits CPU最主要目的是在於能夠支援的memory address增加到2^64次方
以及能夠處理的整數增加到2^64次方
但架構上仍然是x86的64位元擴展指令集, 並非IA-64..(以我的知識還停留在
Athlon的年代來說)
能夠handle的Integer"理論上"是64bit沒錯, 但JVM會不會變成64位元我就不知道了
因為這樣會與java portable的概念發生一點衝突
(這單純是我的想法, 沒驗證, 要找考試答案的千萬別參考我的想法)
試想某個程式有個int存的是2的50次方, 當他編譯完成後, 由x86-64轉回32位元平台
那這樣到底能不能執行呢? 或是JVM編譯過的bytecode能夠在兩種平台上彈性"伸縮"?
不過大整數比較常用到還是在密碼學的alg上, 而long通常也不夠用的,
(現在什麼演算法都要large safe prime = =)
大整數可以考慮用BigInteger, 雖然效率低了一點, 但這個API使用起來方便許多
(內建mod, modInverse等等)
一點點個人小小的看法, 剛好看到兩位對整數這個問題有爭執就回應一下:)
: → Lordaeron:看來用java 在64bit cpu 上沒什麼幫助呢. 03/09 00:01
: 推 kojilin:原來int跟long固定就代表沒幫助呀~好快的結論~ 03/09 00:05
: → Lordaeron:嗯, 不然呢?give me your explain. 03/09 00:34
: → Lordaeron:Memory consumption of 64-bit Java<--google 一下吧 03/09 01:17
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.175.25.1
推
03/09 09:38, , 1F
03/09 09:38, 1F
推
03/09 09:44, , 2F
03/09 09:44, 2F
討論串 (同標題文章)