美文网首页
int型的最大值有多大?

int型的最大值有多大?

作者: superkun | 来源:发表于2017-08-25 14:35 被阅读0次

首先讨论这个有意义吗?
我想没有。

有意思吗?
很有意思。

为什么没有意义?

  • 因为这个东西是人定义的,一些老机子上int型是2个字节,现在大多数是4个字节32位,数据范围为-2147483648 ~ 2147483647[-2^31 ~ 2^31-1]
  • 可以自行查看自己的机子int型是几个字节
#include <stdio.h>

int main()
{
    printf("%d ",sizeof(int));
    return 0;
}

为什么有意思?

因为我们可以自己试出来,思路如下:

  • 定义 int a=1;
  • 在1后边不断加0,直到打印a出现乱的数字
  • 得到一个不乱的10^n形式的最大值1000000000
  • 再从最高位开始试,每位可以从0到9试一下(最高位从1到9),超出范围,就取未超范围的最大值更新一下a的值
  • 当然用二分法更好,但我认为10以内的用二分写程序用牛刀了
  • 计算机如何判断是否超出范围呢?
    • 这远没我想象的简单,因为超出范围得出的数并不是随机数,如2000000000+2000000000超出了范围,你又减取2000000000,结果还是2000000000。
    • 我的想法是除去最高位加一次,得到的值与直接相加的结果一定位数相比较。不过这个方法优缺点,存在很小的意外情况。

我为啥闲得蛋疼研究这个?

  • 因为我玩炉石的时候周卓加翻倍翻了29次我的周卓居然死了。(周卓本身4血翻倍29次应该是2的31次方,而int型最大值是2^31-1)
  • 看来炉石随从的血量,生命值啥的是用int型的变量存储的。

相关文章

  • int型的最大值有多大?

    首先讨论这个有意义吗?我想没有。 有意思吗?很有意思。 为什么没有意义? 因为这个东西是人定义的,一些老机子上in...

  • 4.数组算法相关

    1.求数值型数组的最大值、最小值、总和、平均数 int[] arr = new int[] { 4, 3, 6, ...

  • python函数(三)

    内置函数 type()查看函数类型 int()整型 float()浮点型 star()字符串 max()最大值 m...

  • 找出最大子数组(js实现)

    有长度为n 的数组,其元素都是int型整数(有正有负)。在连续的子数组中找到其和为最大值的数组。 如 [1, -2...

  • byte c = (byte)130;运算过程

    130是一个大于byte最大值127的数,所以会默认作为int型处理。 强制转换过程: 130作为int是四个字节...

  • Android生成随机数

    方式1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例子:从1到10的int型随数 ...

  • 随机数的生成

    方式1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例子:从1到10的int型随数 ...

  • 内建类型的一些知识点

    文|Seraph 动态的获取数据类型的最大值(以int为例子) 计算获取 C++可以直接获取int最大值std::...

  • c---得到int型数据的最大值

    printf("%d\n", ~(unsigned int)0 / 2); unsigned int 无符号整数,...

  • C语言中的各种类型

    C语言中的各种类型(int为例) int型变量 int f; int型指针 int *f; 返回值为int型变量的...

网友评论

      本文标题:int型的最大值有多大?

      本文链接:https://www.haomeiwen.com/subject/pypudxtx.html