前言

今天一个同事问我,数据库里面的某表如果用int做PK,那该表最多可以放多少记录,我说简单啊,就是2^31(正数),跟.NET的Int32.MaxValue一样,约等于20亿(正数)吧。同事说,那具体什么数字呢?这就难倒我了,因为我从来不记住具体某个数字,就算是Pi我也只记住3.1415926,我甚至曾经连自己的手机号码都没记住,打电话给朋友让他根据来电显示告诉我我手机号码。。。

我能记住这个值是约等于20亿是因为在上一个公司的系统中,单表超过30亿。。。所以我们不用int。。。

看法

虽然我知道.NET有Int32.MaxValue,但我想知道有没有简便易记的办法,虽然我觉得记住这个数字没啥特别的用途。。。

Google大神

Google是一个伟大的发明,StackOverflow是一个屌丝程序员的逆袭故事。。。它告诉了我一些好玩的答案:http://stackoverflow.com/questions/94591/what-is-the-maximum-value-for-a-int32

质疑

毫无疑问,很多人质疑提问者为什么需要记住这个数字,不过今天我们关心的,是不同的程序员的不同记忆方法。

答案1-标准答案

(2^31)-1 = 2,147,483,647,这就是“标准”答案。最小的值是-2,147,483,648。

答案2-纹身

一个程序员说,或许你可以弄个纹身,当然了,这只是一个西方的玩笑,相信中国没多少程序员愿意把这一点数字刻印章身上,除非是你的女神的生日或者三维。。。

搞笑的是,一个回复者说最小值是-2,147,483,647。。。。然后被其他回复者指出应该是-2,147,483,648,然后该回复者说:天啊,那我的纹身该怎么办。。。换个例子,你刻了女神的生日站身上,如果分手了,换了个女朋友,你怎么办。。。

答案3-找茬

1. 一个码农说,敲2,147,486,647 这个值还不如int.MaxValue,因为当你输入int.M,自动完成就有最大值了。。。

2.另外一个码农说,用二进制,那就是1111111111111111111111111111111,你是否觉得脑袋更痛。。。

答案4-Google

一个码农说,随便一个搜索引擎一输入就有了。。。(跟我的想法真像。。。)

答案5-有意义的句子

这个做法我最喜欢:

a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9
Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2 1 4 7 4 8 3 6 4 8

不过这是使用英文的程序员的做法,对使用中文的程序员来,记住这些单词,或许比记住这串数字更难。。。

答案6-简单有效的分段

我比较喜欢这个简单的做法

2^(x+y) = 2^x * 2^y

2^10 ~ 1,000
2^20 ~ 1,000,000
2^30 ~ 1,000,000,000
2^40 ~ 1,000,000,000,000
(etc.) 2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512

有趣的回复是:“硬盘厂商也是这样干的”。。。笑喷

答案7-常见

2GB

没错,就是大家日常所见的空间/大小。容易记吧?

答案8-计算器

拿出你的计算器,切换到Hex,输入“7FFFFFFF”。

另外一个码农说,为什么不直接输入2^31。。。

答案9-电话号码

美国和澳洲的电话号码位数都是10位,可以这样记。中国大城市固定电话区号+号码也是10位,把它当成电话边可以记住了。

某蛋痛码农还校验了一下该电话号码的真伪。。。另外一个码农说:你怎么把我的电话号码给公开了。。。

答案-你呢?

你觉得有啥好办法记住这个数字呢?

怎样记住Integer的最大值(有趣的思维和搞笑的回答)的更多相关文章

  1. Java中Integer的最大值和最小值

    从JDK1.0开始,Integer中就定义了MIN_VALUE和MAX-VALUE两个常量: /** * A constant holding the minimum value an {@code ...

  2. Integer的最大值

    来自:https://blog.csdn.net/qq_33611068/article/details/77369050 有这样一道题: 编程测试,遍历 0 到 int所能表示最大的正数,将消耗的时 ...

  3. 面试题:Integer和int的区别?在什么时候用Integer和什么时候用int

    /*  * (1) int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类. * (2)int的默认值为0, 而Integer的默 ...

  4. 由自动装箱和拆箱引发我看Integer源码

    背景和问题 在看别人整理的资料时,看到如下一段代码: package com.sitech.test; /** * 自动装箱和拆箱 jdk1.6 * @author liaowp * */ publi ...

  5. JDK源码分析-Integer

    Integer是平时开发中最常用的类之一,但是如果没有研究过源码很多特性和坑可能就不知道,下面深入源码来分析一下Integer的设计和实现. Integer: 继承结构: -java.lang.Obj ...

  6. [leetcode]经典算法题- String to Integer (atoi)

    题目描述: 把字符串转化为整数值 原文描述: Implement atoi to convert a string to an integer. Hint: Carefully consider al ...

  7. 什么是设计思维Design Thinking——风靡全球的创造力培养方法

    “把学习带到现实中,让孩子用自己的力量创造改变,可以直接提升他们的幸福感和竞争力.” 这是“全球孩童创意行动”的发起人——Kiran Sethi在TED演讲时说的一句话,这个行动旨在引导中小学生主动寻 ...

  8. jdk源码阅读笔记-Integer

    public final class Integer extends Number implements Comparable<Integer> Integer 由final修饰了,所以该 ...

  9. String to Integer (atoi) leetcode java

    题目: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ca ...

随机推荐

  1. Java中抽象类和接口的区别

    转载自:http://dev.yesky.com/436/7581936.shtml 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种 ...

  2. Linux Oracle删除归档日志

    今天遇到Oracle报这样的错:ORA-00257 查看了下,原来是Oracle的归档日志满了,解决方案两个 一:增加归档日志大小 二:删除无用的归档日志(我们选择这个方案) 什么也不说了Linux下 ...

  3. JAVA求圆的面积

    import java.text.DecimalFormat;import java.util.Scanner; public class TheAreaOfCircle { public stati ...

  4. 禁止Visual Studio中的编译警告

    VC编译器有个很蛋痛的自家警告系统,默认下各种开源库比如CGAL,各种4996,而一般自己写的 如sscanf,fopen这种单个文件,在文件头加个 #pragma warning (disable ...

  5. CodeForces 743C Vladik and fractions (数论)

    题意:给定n,求三个不同的数满足,2/n = 1/x + 1/y + 1/z. 析:首先1是没有解的,然后其他解都可以这样来表示 1/n, 1/(n+1), 1/(n*(n+1)),这三个解. 代码如 ...

  6. java 堆栈的区别(转百度)

    转:http://zhidao.baidu.com/link?url=Y1XnuCnTiw6BsUoW85MWSx_x7k0QAS39kz4dTy9ngkMkZjvlSEHVfdflOGVWs6TcH ...

  7. EasyUI需注意的问题01

    一.EasyUI-Datagrid分页 在创建数据表格(DataGrid)的时候,通过设置'pagination' 属性为 true,可以在数据表格的底部生成一个分页工具栏. <table id ...

  8. c#.net中参数修饰符ref,out ,params解析

    params ============================================================================================= ...

  9. MVC4 学习笔记 之 URL中存在编译的空格 20%20%

    /Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10 ...

  10. rdc21n(研发与设计综合讨论)博客开通了!

    rdc21n是“Research and Design Comprehensive discussioN”,其中21表示Comprehensive discussioN中间的21个字母(不包含空格), ...