怎样记住Integer的最大值(有趣的思维和搞笑的回答)
2013-07-01 11:01 灵感之源 阅读(20267) 评论(49) 编辑 收藏 举报前言
今天一个同事问我,数据库里面的某表如果用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位,把它当成电话边可以记住了。
某蛋痛码农还校验了一下该电话号码的真伪。。。另外一个码农说:你怎么把我的电话号码给公开了。。。
答案-你呢?
你觉得有啥好办法记住这个数字呢?
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
2007-07-01 智能实验室-全能优化(Guardio) 4.92.0.812
2007-07-01 智能实验室-杀马(Defendio) 4.10.0.781
2005-07-01 究竟.NET标准化是怎样的?和微软的.NET并存的,到底有哪些开源.NET实现?
2005-07-01 为你的程序/系统提供强大的配置功能(选项配置文件的读写)
2004-07-01 SQLite3.0 beta & ADO.NET Data Provider for SQLite 0.18发布了!
2004-07-01 关于WebBrowser(浏览器)控件的调用