C++-IBM面试题:估计一下,一台普通机器可以对i++执行多少次?
IBM面试题:估计一下,一台普通机器可以对i++执行多少次?
个人完全没有思路,发上来大家讨论一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
IBM面试题:估计一下,一台普通机器可以对i++执行多少次?
个人完全没有思路,发上来大家讨论一下。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
java语言,JVM在启动时,会被分配内存大小,当超出会有outofmemeryerror,那么我想执行多少次取决于被分配的大小。
我想c++也是这样的情况吧
因为i++可以无限执行下去,超出值的时候会自动变成最小的负数,所以没有什么停止的机制。那么电脑能够运行多久,就能够执行i++多久。
一台普通电脑的寿命大概是4年,CPU运行频率是2.5GHz,i++指令的执行需要3步,一步读取数据,一步进行++计算,一步写数据。由于该操作的指令不能进行并行执行,只有i写入之后才能读出i进行下一步的++运算,所以不能用到CPU的指令并行处理技术。于是可以执行
((4*365+1)*24*3600*2.5*(10^9)/3)
次指令。前面的
4*365+1
是天数,含闰年。
2.5*(10^9)
代表CPU每秒钟执行多少次指令,因为每秒有
2.5*(10^9)
个时钟周期,而每个时钟周期在不进行并行指令执行的时候只能执行1条代码。