我有一个int
数组,为其分配了100个元素的空间。还有另一个数组inShort[]
。如何将inInt[]
转换为inShort[]
?
需要为inShort[]
分配新的内存吗?还是有一种方法可以将其强制转换为inInt[]
?
int inInt[] = new int[100];
short inShort[];
我有一个int
数组,为其分配了100个元素的空间。还有另一个数组inShort[]
。如何将inInt[]
转换为inShort[]
?
需要为inShort[]
分配新的内存吗?还是有一种方法可以将其强制转换为inInt[]
?
int inInt[] = new int[100];
short inShort[];
short inShort[] = new short[100];
for(int i = 0; i < 100; i++)
{
inShort[i] = (short)inInt[i];
}
但是,如果int超出short的范围(即小于-32,768或大于32,767),则很可能会造成short溢出。实际上,很容易造成short溢出,因为int范围从-2,147,483,648到2,147,483,647。
这可能会导致信息丢失,因为与short相比,int类型使用更多的内存。 所以正如Lirik所说,您可以使用他的方法,直到您不丢失信息为止。 为此,您必须确保要转换的整数在short类型的范围内。