作者mc18 (无道德事业集团)
看板java
标题Re: [问题] 提高身价的程式风格
时间Sun Mar 9 09:35:23 2008
※ 引述《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
1F:推 freesamael:JVM 有分 64bit 和 32bit 的 03/09 09:38