关于4294967295这个数字

今天在看oracle创建数据字典的存储过程,发现了一个特殊的数字:

4294967295。这个数字多在创建sequence中,最大值的上限。

不禁要想,为什么这些序列不是我们常见的999999999之类的呢?为什么都是定义到4294967295呢?遂google查了一下,结果好多。

其中最常见的一个是在C语言的开发过程中的一个数值上限的问题,

“%u是输出无符号十进制整数。整数占4个字节,-1的十六进制为0xFFFFFFFF,
如果把它看成无符号整数,就是十进制的4294967295。”这个说法倒是很能说明问题。

常用的软件核心代码都是C语言开发的,可能和这个有关。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/759027/viewspace-753947/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/759027/viewspace-753947/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是能匹配0到4294967295之间数字的正则表达式: ``` ^(0|[1-9]\d{0,8}|[1-3]\d{0,9}|4[01]\d{0,8}|42[0-8]\d{0,7}|429[0-3]\d{0,6}|4294[0-8]\d{0,5}|42949[0-5]\d{0,4}|429496[0-6]\d{0,3}|4294967[0-1]\d{0,2}|42949672[0-8]\d{0,1}|429496729[0-5])$ ``` 解析: - `^`:匹配字符串的开始位置。 - `(0|[1-9]\d{0,8}|[1-3]\d{0,9}|4[01]\d{0,8}|42[0-8]\d{0,7}|429[0-3]\d{0,6}|4294[0-8]\d{0,5}|42949[0-5]\d{0,4}|429496[0-6]\d{0,3}|4294967[0-1]\d{0,2}|42949672[0-8]\d{0,1}|429496729[0-5])`:匹配0到4294967295之间的数字,具体如下: - `0`:匹配数字0。 - `[1-9]\d{0,8}`:匹配数字1到999999999。 - `[1-3]\d{0,9}`:匹配数字1000000000到3999999999。 - `4[01]\d{0,8}`:匹配数字4000000000到4199999999。 - `42[0-8]\d{0,7}`:匹配数字4200000000到4289999999。 - `429[0-3]\d{0,6}`:匹配数字4290000000到4293999999。 - `4294[0-8]\d{0,5}`:匹配数字4294000000到4294899999。 - `42949[0-5]\d{0,4}`:匹配数字4294900000到4294959999。 - `429496[0-6]\d{0,3}`:匹配数字4294960000到4294966999。 - `4294967[0-1]\d{0,2}`:匹配数字4294967000到4294967199。 - `42949672[0-8]\d{0,1}`:匹配数字4294967200到4294967289。 - `429496729[0-5]`:匹配数字4294967290到4294967295。 - `$`:匹配字符串的结束位置。 注意:这个正则表达式虽然可以匹配0到4294967295之间的数字,但是不保证匹配到的数字一定是合法的IP地址。如果要匹配合法的IP地址,需要使用更复杂的正则表达式或者结合程序逻辑进行判断。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值