[第十二届蓝桥杯/java/算法]B——空间

  • Post author:
  • Post category:java


🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法

💻博客主页:

渡过晚枫


渡过晚枫


👓系列专栏:

[编程神域 C语言]



[java/初学者]



[蓝桥杯]

📖阶段目标:备战2023蓝桥杯java个人赛


👻不能逃避,不能逃避,不能逃避,去成为更好的自己!👻


一、🍁题目描述:

小蓝准备用256MB的内存空间开一个数组,数组的每个元素都是32位二进制数,

如果不考虑程序占用的空间和维护内存需要的辅助空间,

请问256MB可以存储多少个32位二进制整数?


二、🍁题目分析:

这题考察我们对内存空间的掌握程度。

我们都知道计算机的存储单位有以下换算:

1GB=1024MB,1MB=1024KB,1KB=1024B,1B=8bit

根据题意,我们就可以用256乘1024乘1024乘8得到总的bit数,然后再除以32就可以得到答案是“


67108864


”啦。

值得注意的是,如果我们直接输出这个算式的话,那么结果则为“


-67108864


”,因为这时的数据为int型,而在运算过程种,值会大于int的最大范围2^31-1,即会溢出,所以我们需要对数据进行类型转换,用long型来输出。


三、🍁解题代码:

package JAVA_Lanqiao_2021;

public class B
{
    public static void main(String[] args)
    {
        System.out.println((long)256*1024*1024*8/32);
    }
}



版权声明:本文为DuFengYa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。