short是什么数据类型
1、short和int等一样,是C或C++的一种内部数据类型。用于表示有符号整数。不同的是,他们在内存中所占的空间大小不同,short通常为int所占一半,也有一些实现为和int一样,但不会比int大。所占内存空间不同,那么可用表示的整数范围也就不同。至于具体能表示什么范围,这个问题是体系结构和编译环境相关的。
2、以下例程输出各种整型类型的大小:
#include <iostream>
using namespace std;
int main()
{
cout<<sizeof(short)<<endl;
cout<<sizeof(int)<<endl;
cout<<sizeof(long)<<endl;
cout<<sizeof(__int64)<<endl;
}
在VC8上编译运行结果是
2
4
4
8
也就是说short占2字节(byte),int和long一样占4字节,__int64占8字节,占字节数越多,所能表示的数的范围越大。
在不同的编程语言中,short通常是一种整数数据类型,但是它的精度和最大值可能会因不同的语言和处理器架构而有所不同。在C和C++语言中, short是一种整数类型,通常使用两个字节表示,其范围为-32,768到32,767。 在Java中,short是一个16位有符号二进制补码整数,范围是-32768到32767,它由关键字"short"指定。
作为整数类型的一种,short通常用于表示需要存储在有限空间中且不需要太高精度的数值。例如,可以使用short类型来表示某些二进制标志,或是用于表示某些计数器或索引等整数值。需要注意的是,在某些情况下,short类型可能会造成数值溢出或精度损失。
short只能赋予直接量吗
short整型数据类型是16位有符号Java原始整数数据类型。 其范围是-32768至32767(或-2^15至2^15-1)。
short整型数据类型没有字面量。但是,可以将任何位于short(-32768到32767)范围内的int数值分配给一个短(short)变量。
byte、char、short三种类型实际存储的数据都是整数,在实际使用中遵循如下规则:
Int直接量可以直接赋值给byte、char和short,只要不超过其表示范围。
为什么short型比char型低
在Java中,char是16bit长的无符号整数,因此范围是:0~65535,而short则是16bit长的带符号整数,范围是-32768~32767。 所以,两者虽然字长相同,但意义却不一样(表示范围并不完全重合或包含),因此不管是char转换成short,还是short转换成char,都属于数值的“窄化转换”(Narrowing Primitive Conversion)。 窄化转化都可能“丢失精度”,因此必须强制转换。虽然,这里的“丢失精度”跟从int到short的丢失精度给人的感觉似乎不一样,但仔细想想也没有什么区别,一方面,char有16个bit表示数值,而short用于表示数值大小的只有15个bit,因此,从char到short会“丢失数值精度”,而另一方面,short有1个bit表示数值的符号,而char却根本没有这么个符号位(所有的bit都用来表示数值大小了),所以从short到char也可能“丢失精度”,只是这里丢失的是有关正负的“精确程度”。