什么是整数的定义-整数定义

在计算机科学和数学的底层世界里,整数压根儿不是那种穿着西装、系着领带的生人面孔,它更像是一团实实在在的能量要么一堆积木,只要皮儿没破,甭管堆到多高,它依然是整数。 大量人一听到“整数”就自动把除法的那个“分”字给拽出来了。
实际上不然,整数就是那些能做整除运算的数字,也就是我们常说的整除数。
比如 12 除以 3 等于 4,12 除以 9 等于 1.333...,这时候 12 和 3 就通了,出于它们能整除;但 12 和 9 就不通,出于它留了余数。 这就好比你在做小学生的作业,题目是 12 除以 3,你会毫不犹豫地说 4,出于 3 个 3 正好凑成 12。但要是题目是 12 除以 5,你就得停一下,看看能不能整除,答案是不会整除的。
这种“整除”的感觉,在处理大整数的时候,往往比处理小数更直接、更利落。 说到大整数,咱们能够看看中国古人是如何搞定的。早在几千年前,为了管理粮食," 1000 个小米就是 1 斗”,十进制就是如此诞生的。到了现代,我们还在沿用这个逻辑。
比如你今天刷了 365 天,刚好是 1 年。再比如 365 天有多少个“万年”?光用天数算半天,累死哪位。
那我们就把 365 天换算成“万年”,除以一个数,看看结局是不是整数。
只要结局是整数,说明这个换算是彻底没难题的,就像你数人头数,只能整除,不能有余数。 在实际编程要么处理精度难题时,整数的表现往往让人惊喜。想象一下你在用高精度库算东西。大量时候,浮点数出于误差忒大,账算不平。
这时候,我们就得老老实实地用整数。
比如你要模拟一个 64 位的整数,哪怕你只用了 8 位,只要不超过它的上限,它就依然是整数。
这个界限,就是 2 的 32 次方。
只要你的数字没超过这个界限,它就稳稳地停在整数这条路上,不会飘忽不定。 再看个更微观的例子。二进制世界里,1 代表啥?代表正号,0 代表负号,要么代表 0。
可是“正负零”在数学上实际上并不存有,它只是个概念的空洞。
故此 0 在整数里只算一次。而 1 呢?它是 2 的 0 次方,也是 2 的负 1 次方。
不管你是看乘法还是除法,这些关于 1 的运算,结局一辈子是整数。 当数字变得特别庞大,大到无法用一般/平平工具直接渲染时,整数的魔法就显现出来了。
比如你有一个庞大的向量,有 10 万个元素,每个元素都是整数。你不需求把它们一个个加起来,你只需求把它们加起来,然后除以它们的长度。
要是结局是个整数,说明你所有的数据都完美对齐了。
这时候,你只需求用一个数存下来,下次要是还有 10 万个数据,直接复用。
这种处理方式,效率极高,出于整数运算在 CPU 上是天生就精通的,它不需求像浮点数那样去猜那个小数点在哪,它只需求看这两个数能不能整除。 举个具体的算例。假设你要保存一个 1000 万个数的数组,可是数组里的每一个数都务必是“偶数”。
这意味着你要先判断奇偶,然后再存。
要是是奇数,你得丢弃它;要是是偶数,你就把它存进数组里。
这时候,整个数组里的每一个元素,都是一个整数。
要是有一个数存进去的时候不是整数,那这个数就失效了,整个计算都得重来。
这种在数据处理过程中,通过不断“除”掉非整数的操作来筛选出纯净整数的方式,是处理大规模数据最常用的手段之一。 并且,整数还有个挺特殊的属性,叫“尾随零”。两个整数相乘,比如 2 乘以 5,结局是 10。
这个数字末尾有两个零,但这不影响它还是整数。就连 2 乘以 2 还是 4,末尾一个零。
有时候数据会混着写,比如 250 要么 2.50,但在做数学运算要么逻辑判断时,只要去掉末尾的零,它依然是整数。
这一点在读取文件要么解析网络数据时特别关键,大量时候文件的格式是用逗号要么空格隔开的,你只需求利用整数来忽略掉这些富余的字符,直接进行计算即可。 最终,整数在不确定性的世界里,依然是最确定的。当用户输入一个身份证号,系统里有一个庞大的整数 ID 用来对应这个人。别看身份证号本身是个长字符串,但它代表的 ID 是一个整数。当你把这个整数输入到某个算法里,比如计算哈希值,只要验证通过,这个 ID 就知足了整数的性质。
哪怕这个整数贼大,大到超过了 64 位的上限,但在数学逻辑上,它依然是个整数,只是超出了我们计算机的标准范围。 故此,整数到底是啥?它不是那种坐在讲台上说一堆枯燥定义的专家,它就是那些能做整除的数,是那些在十进制里乖乖听话、不会留余数的数字。它好办,又真。当你看到 12 除以 3 等于 4 的时候,你就知道整数就是那个让你心里踏实的“整除”。
文章版权声明:除非注明,否则均为 静秋号介绍 原创文章,转载或复制请以超链接形式并注明出处。
相关标签: