怎么和使用int 型存储超过它范围的数
如何和使用int 型存储超过它范围的数?
原本我有两个数 251631(这个是个随机数,范围可在0~999999) 和 704,
我需要把这两个数拼起来变成251631704,我至少还要记录这两个数其中一个的长度,长度是6或3,
我现在无论怎么拼接都会超出int所要表示的范围,即最大是2147483647.
能有什么办法在int 的范围内存这3个数(251631,704, 3 )并能够区分出来呢???
------解决方案--------------------
lz还在纠结这个问题啊。我不知道你怎么想的,不就是传两个数字过去嘛,没有这么纠结的,非要拼在一起做什么?定义个int a[2],保存不行吗?
------解决方案--------------------
做不到的
楼主
------解决方案--------------------
楼主学习“位域”正当时。
尽管“位域”不一定能解决楼主的问题。
------解决方案--------------------
可以做到. 而且还多一点空间.
原本我有两个数 251631(这个是个随机数,范围可在0~999999) 和 704,
我需要把这两个数拼起来变成251631704,我至少还要记录这两个数其中一个的长度,长度是6或3,
我现在无论怎么拼接都会超出int所要表示的范围,即最大是2147483647.
能有什么办法在int 的范围内存这3个数(251631,704, 3 )并能够区分出来呢???
------解决方案--------------------
lz还在纠结这个问题啊。我不知道你怎么想的,不就是传两个数字过去嘛,没有这么纠结的,非要拼在一起做什么?定义个int a[2],保存不行吗?
------解决方案--------------------
做不到的
楼主
------解决方案--------------------
楼主学习“位域”正当时。
尽管“位域”不一定能解决楼主的问题。
------解决方案--------------------
可以做到. 而且还多一点空间.
Union
{
struct
{
unsigned int V1: 20, // 0~1048575
unsigned int V2: 12 // 0~4095
} actualValue;
unsigned int retValue;
} ReturnType;
int CallTheLegacyFunc()
{
ReturnType parse;
parse.actualValue.v1=251631;
parse.actualValue.v2 = 704;
return parse.retValue;
}
ReturnType parse;
unsigned int ret = CallTheLegacyFunc();
parse.retValue = ret;
int v1 = parse.actualValue.V1;
int v2 = parse.actualValue.V2;