-
早期的操作系统是16位系统,
int用二字节表示,范围是-32768~32767;
long用4字节表示,范围是-2147483648~2147483647。
-
后来发展到32位操作系统,
int 用4字节表示,与long相同。
-
目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别:
-
32位编译系统:int占四字节,与long相同。
-
64位编译系统:int占四字节,long占8字节,long数据范围变为:-2^63~2^63-1
-
而激光雷达点云的数量动不动就是几百万千万甚至上以亿这个单位级,所以需要用到long int.
单精度浮点数(float)与双精度浮点数(double)的区别如下:
(1)在内存中占有的字节数不同
-
单精度浮点数在机内占4个字节
-
双精度浮点数在机内占8个字节
(2)有效数字位数不同
-
单精度浮点数有效数字8位
-
双精度浮点数有效数字16位
(3)所能表示数的范围不同
-
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38 这一点激光雷达数据的坐标用float类型就行了。
-
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
(4)在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数
而定义坐标点的坐标看一下坐标的取值范围,定义相应的取值范围,来保证精度。