如标题,我记得short是 16位值,而每个十六进制字符都是4位值,所以我认为 {{1 <}> 可以放在 0xffff
中,
但它不能,为什么?
答案 0 :(得分:4)
short
中的是签名的数据类型。因此,设置了所有位的值为-1
。我怀疑这是你想要他的价值......
答案 1 :(得分:0)
此分配失败,因为0xffff是int
字面值:
short s = 0xffff;
您必须将其强制转换为short
才能使其正常运行:
short s = (short) 0xffff;
请记住,short
是签名类型,因此您可能无法获得预期的价值。十六进制0xffff
代表数字-1
。
System.out.println((short) 0xffff); // Prints -1.
答案 2 :(得分:0)
我想我已经找到了答案,整数是一个带符号的dataType,并且有一点用于放置一个Sign位,所以虽然short有8位,实际上我们只能用7位来存储我们的日期,谢谢所有回答,谢谢!
答案 3 :(得分:-1)
因为0xffff是int的格式,你需要将它转换为简短。
short s= (short)0xffff;