地铁刷卡Bug让你变“千万富翁”?

2016-10-17 10:49:00 作者:CB 分类 : 比特网

  不久前,一名乘客在上海地铁刷卡出站时,闸机显示卡内余额竟然高达42949672.76元!如此巨额究竟从何而来?公交卡公司表示这是闸机出了问题,但真相一直不明。于是有程序员跳出来解释,“把这串数字转换成十六进制,是负数-0.2,这张卡片应该是欠费0.2元!”

  IDFsoft程序员张延俊解释,出错显示的这个数字其实很有特点,因为平时一旦程序写错(变量定义时没考虑负数)的情况下,数字就会接近4294967296。当变量定义为无符号整形(即正数),但实际计算数值为有符号整形(即负数),计算结果一下子会跳到4294967296左右。这也就是为什么当很多程序员看到这个数字,就大抵猜到问题发生在哪里的原因,应该就是变量定义错了。

  通过计算还原得出,该值应为-20(4294967276-4294967296=-20),考虑到公交卡金额最小单位是分,小数点向前挪两位,余额为-0.2元。

    正解:靠此BUG发财?别做梦了!

  “谜团”终于解开,在采访过程中,包括复旦大学计算机科学技术学院教授张军平、《Java程序员,上班那点事儿》作者钟声等专家也都认可了这一推断。

  最近,有记者就上述网友推断向上海公交卡公司求证,该公司市场总监马晓枫告诉记者:“没错,问题交通卡的余额就是0.2元。”程序员们胜利了!想撞上刷不完的巨额公交卡,别做梦了,洗洗睡吧。

   

* 本文为ChinaByte比特网原创内容,版权所有,转载请注明出处和原文链接,未经授权请勿用于商业用途。

最近更新
科普

科普图集
带着朋友和机器人上月亮散步

带着朋友和机器人上月亮散步>>详情

邮件订阅

软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
网络周刊
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
存储周刊
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
安全周刊
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家网
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。