再也不用long了!!!

之所以发出这样的感慨。是因为最近被long坑了。

用户行为分析被报两次服务器和本地时间戳记录不正确的问题。

接到问题反馈以后,脑子里先出现了几种导致该问题的可能性

1、服务器时间返回有问题?

处理结果:测试过程中未复现,无从查证。

2、没有处理获取服务器时间接口报错的问题导致?

处理结果:将接口返回错误的情况进行处理。

经验证,实际上即使接口报错也并不会导致此问题,因为本地时间戳和服务器时间戳这两个变量都有传默认值,也就是本地时间。所以当初没有做这里的处理。

3、服务器时间计算出问题?

处理结果:重新捋了一下代码,并没有发现问题所在。

4、时间戳有溢出?

处理结果:依旧没有复现,不过将ClientTimeStamp和ServerTimeStamp变量类型由long改为long long以防万一。

进一步定位:

经查得出结论。确实是由于32位机型和64位机型的long整型最大值不同导致的。我忽略了32位处理器的long整形的最大值和int值一样,都是2147483647unsigned int 0~4294967295

int -2147483648~2147483647

unsigned long 和int一样

long 和int一样

long long的最大值:9223372036854775807

long long的最小值:-9223372036854775808

unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807

__int64的最小值:-9223372036854775808

unsigned __int64的最大值:18446744073709551615

64bit下

unsigned int 0~4294967295

int -2147483648~2147483647

unsigned long 和 unsigned long long一样

long 和long long一样

long long的最大值:9223372036854775807

long long的最小值:-9223372036854775808

unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807

__int64的最小值:-9223372036854775808

unsigned __int64的最大值:18446744073709551615

最后再次确定结论:

查询用户行为分析日志发现。出现时间戳不正确的机型为iphone5和ipad mini1,这两款机型都是32位处理器,怪不得手里的机器一直复现不了。第二步,翻看时间戳错误的记录,所有的ClientTimeStamp都是2147483647,溢出后的最大值。再次证实这一结论。

所以,以后建议大家,遇到处理时间戳(毫秒级)或者你不确定返回数值有多大的情况。一定要用long long型,避免带来不必要的麻烦。

在32位系统中

int 占4个字节

long 占4个字节

NSInteger 是int的别名,占4个字节

long long 占8个字节

int32_t 是int的别名,占4个字节

int64_t 是long long的别名,占8个字节

在64位系统中

int 占4个字节

long 占8个字节

NSInteger 是long的别名,占8个字节

long long 占8个字节

int32_t 是int的别名,占4个字节

int64_t 是long long的别名,占8个字节

c语言 long int最大数,long整型的最大值跟处理器位数有关相关推荐

  1. c语言整型最大数,C语言:求一个短整型正整数中的最大数字

    C语言:求一个短整型正整数中的最大数字 关注:84  答案:5  手机版 解决时间 2021-01-16 02:17 提问者舊倳偂歡 2021-01-15 14:26 例如整数12354中的最大数字是 ...

  2. c语言中长整型的作用,C语言,整形和长整型都占四个字节?

    C语言中,整型常量和长整型常量,有什么区别? 整型常量和长整型常量(包括有符号的和无符号的),为什么占用字节数和一.指代不同 整型常量:是通常的整数,包括正整数.负整数和0,其数据类型显然是整型. 长 ...

  3. C语言中的截断与整型提升

    C语言中的截断与整型提升 我们首先来看一段代码: #include<stdio.h> #include<stdlib.h> union Un//--联合体 { char c;i ...

  4. 2.2 Go语言中的布尔型和整型

    变量类型 上一节对Go语言中的变量的定义方法进行了介绍,定义的方式一种是显示,一种为隐式.显示定义需要明确变量类型,而隐式定义则根据赋予的值来决定变量的类型.那么Go语言中到底有多少种变量类型呢?可以 ...

  5. 语言转4字节数据整型_R语言与RGui平台_数据类型_向量_4

    计算机语言RGui平台上的R语言__数据类型_向量_4 R语言进阶4_数据类型_向量1 咱们而可以从自然语言(汉语.英.法.俄.德.日.拉丁.伊斯兰.等等)的基本特征来看--词汇.句子.段落.结构.文 ...

  6. C语言加强学习营(二):定义整型的最大值和最小值

    示例 #include <stdio.h> #include <stdint.h>int main(int argc, char **argv) {uint8_t uint8_ ...

  7. php整型的最大值,php整型(Integer)

    一个 integer 是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的一个数. 语法 整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 ...

  8. C语言阅读程序输出星号井号,第1章 C语言概述-python的长整型-WinFrom控件库|.net开源控件库|HZHControls官网...

    声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.comQQ:80368704 第1章 C语言概述 1.1和1. ...

  9. c语言布尔类型赋值给整型,C语言的布尔类型(_Bool)【转】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1. 我们自己定义的"仿布尔型" 在C99标准被支持之前,我们常常自己模仿定义布尔型,方式有很多种,常见的有下面两种: view pl ...

  10. mysql中长整型是longint_整型int和长整型long

    python 一切事物都是对象,对象基于类创建 类:(列表)功能集合 查看对象相关成员:var,type,dir 一.整数int int(x=0) -> int or long int(x, b ...

最新文章

  1. 人物丨深度学习大神Hinton推翻自己30年的学术成果另造新世界
  2. 3.6.1 局域网的基本概念和体系结构
  3. JavaEE进阶知识学习-----SpringCloud(六)Ribbon负载均衡
  4. [Leedcode][JAVA][第1248题][统计「优美子数组][找规律]
  5. Mysql报错:2006 - MySQL server has gone away
  6. 迎新年\年会背景PSD分层模板
  7. php 抽象类 静态 单体设计模式
  8. 泛微oa主表赋值明细表_OA系统学习--三
  9. WPF中,输入完密码回车提交 ,回车触发按钮点击事件
  10. 斗鱼html5插件 edge,斗鱼HTML5播放器插件
  11. 用python画简单的猴子画法_10种可爱的小猴子简笔画合集,分分钟被萌翻,一看就会画...
  12. 阴阳师维护服务器,阴阳师3月3日服务器维护更新内容公告
  13. Unity中UI的LookAt效果实现
  14. Docker常用命令(基础)
  15. 微信麻将连接服务器失败,微乐麻将授权失败是怎么回事?微乐麻将怎么用微信登录?...
  16. MFC使用CButtonST类实现按钮图片功能
  17. 网络安全风险感知和发掘,练习题
  18. Phython做小鸟飞行游戏
  19. 冠军专访:是情侣,更是夺冠道路上的最佳伙伴
  20. PMP 1~3章错题总结

热门文章

  1. mbr+bios gpt+uefi_小白安装系统之LEGACY、UEFI、GPT和MBR
  2. 几种统计图表的作用和区别
  3. 栈和队列的共同点和不同点
  4. 小说网站源码+采集器+App端
  5. python乌龟吃鱼_Python面向对象练习-通过pygame改良乌龟吃鱼
  6. PostgreSQL Array 数组类型与 FreeSql 打出一套【组合拳】
  7. 使用element插件点击跳转时报错form-item.vue:315 Uncaught (in promise) TypeErelForm.removeField is not a function
  8. Laravel文档阅读笔记-Adding a Markdown editor to Laravel
  9. 7628刷breed_H大的最新版Breed不死u-boot
  10. t检验自由度的意义_统计学常用概念:T检验、F检验、卡方检验、P值、自由度...