java 小问题 short的取值范围在-2^15到2^15-1 那为什么我写short max=0x7fff正确而

java 小问题 short的取值范围在-2^15到2^15-1
那为什么我写
short max=0x7fff;正确而
short min=0x8000;错误呢
0x8000不就是-2^15么 没有超出short范围啊
求好人告诉
谢谢。

这个是因为系统默认0x8000是int类型的,他是32位空间,因而就超过了最大的范围。
这样就可以了short t = (short)0x8000;
建议用下面的赋值语句:
short max=Short.MAX_VALUE;
short min=Short.MIN_VALUE;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-03
不啊,你这个0x8000前面没加负号,这个就是个正数,所以就超了呀,你改成-0x8000才是-2^15本回答被网友采纳
第2个回答  2014-06-21
0x8000是2^15,而-2^15是-0x7fff不谢追问

0x8000 不是 1000 0000 0000 0000么 怎么会是正数

追答

1000 0000 0000 0000为什么不是正数

java 小问题 short的取值范围在-2^15到2^15-1 那为什么我写short ma...
这个是因为系统默认0x8000是int类型的,他是32位空间,因而就超过了最大的范围。这样就可以了short t = (short)0x8000;建议用下面的赋值语句:short max=Short.MAX_VALUE;short min=Short.MIN_VALUE;

c语言中int取值范围-2的15次方至2的15次方减1,为什么要减1
int型 在16位的C编译器 占2字节;32位和64位的编译器通常是4字节。如果是占2字节则为16位的二进制数,其中最高位为符号位,1为负,0为正;所以正整数中最大的数为0111111111111111 即2的15次方-1 而负整数则比较特殊 最小为1000000000000000 即-2的15次方 建议你去看下二进制数原码 补码 反...

...取值范围-2^15--2^15-1(-32768--32767)?就是-2^15是怎么得来的?_百 ...
补码范围是1000000000000001-1111111111111111,对应的原码是100000000000001-111111111111111,值的范围是-1~-(2^15-1)。还有一个数是100000000000000,它不能使用补码计算公式进行计算的。是计算机内部直接用它来表示-2^15

java中long类型的取值范围到底是多少呢?
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)long的取值范围为(-9223372036854774808~9223372036854774807),占用8...

short数的范围
C语言中,short是定义一种整型变量家族的一种。例如short i;表示定义一个短整型的变量i。长度 依据程序编译器的不同short定义的字节数不同。标准定义short短整型变量不得低于16位,即两个字节。编译器头文件夹里面的limits.h定义了short能表示的大小:SHRT_MIN~SHRT_MAX。在32位平台下如windows(32位...

java的基本数据类型有哪些
java的基本数据类型有:1、布尔型(boolean)取值范围:True 或 False 2、字节型(byte)取值范围:0 - 255 3、短整型(short)取值范围:-32,768 ~ 32767 4、整型(int)取值范围:-2,147,483,648 ~ 2,147,483,647 5、长整型(long)取值范围:-9223372036854775808~9223372036854775807 6、单...

java中float和double的取值范围是什么?
float:4字节(32bit),IEEE 754. 取值范围:[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。double: 8字节(64bit) ,IEEE 754. 取值范围:[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-...

java中的int的取值范围如何计算???
int的取值范围: (-2147483648 ~ 2147483647)。第一种推算法:将二进制最大的数字(32个1)转换成10进制,即 4294967296;第二种推算法:既然有2的32次方种算法,那么按照10进制最大的数就是2的32次方,即4294967296;

float double取值范围是多少
1、Float:比特数为32,有效数字为6-7,数值范围为 -3.4E+38 和 3.4E+38 2、Double:比特数为64,有效数字为15-16,数值范围为-1.7E-308~1.7E+308 可根据应用程序的需求将浮点变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。

java基础都有那些?
1)区分字符常量和字符串常量 字符常量是单引号引起来的单个,字符串常量是双引号引起来的不限长度 由于java采用Unicode编码,每个字符占两个字节,因而可用天十六进制编码形式表示,当然也可以用一个中文表示(单个中文占用两个字节) 2)”常量”这个名次还会用在另外其他语境中表示值不可变的变量 2.java变量 java变量是程...

相似回答