关于十进制和八进制的问题 “十进制字面常量具有一个很好的属性,即所有的十进制字面常量都是正的,而十六进制或是八进制字面常量并不具备这个属性”怎么理解呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个说法,其实我个人觉得要看场合。原文是说:十进制字面常量只有一个特性,即所有的十进制字面常量都是正数,如果想写一个负的十进制,则需要在正的十进制字面常量前加上“-”即可。 十六进制或八进制字面常量可就不一定是正数或负数,是正还是负,则要根据当前情况看:如果十六进制和八进制字面常量的最高位被设置成了1,那么它们就是负数。实际上说的是计算机在处理数值是,最高位(bit)作为了符号位的问题。但其实 - 号,计算机也不能直接处理,所以即便是十进制实际处理时仍然用的是将最高位当作符号位的方式。反之,程序语言处理都比较智能了,所以写代码的时候也能这样:int a = -0x1A; // 即 负26 说的是最高位——符号位,你不用负号的话,十进制int型最高只能用到第31个bit,最高位——第32bit位你是接触不到的,除非你加负号。 可以这样玩:private static int a = Integer.MAX_VALUE + 1;也可以直接这样玩:private static int a = (int) 2147483648l;都是:-2147483648不过讨论这些冷知识,价值不高。 十进制只能用正负号表示正负。其他2的X次方进制的可以由最高位的二进制码表示。is it? static变量的生命周期?线程内?虚拟机内? 数组赋值后,下标为什么出现负数? 多个窗体与按钮的问题 RMI 的 报错 关于线程编程的问题 Java读取属性文件的问题 请助 关于内存? 考考你??? SUN出的JAVA和微软出的JAVA有何不同? [100分求解]制作悬浮窗遇到的几个问题 关于定时器的问题
十进制字面常量只有一个特性,即所有的十进制字面常量都是正数,如果想写一个负的十进制,则需要在正的十进制字面常量前加上“-”即可。
十六进制或八进制字面常量可就不一定是正数或负数,是正还是负,则要根据当前情况看:如果十六进制和八进制字面常量的最高位被设置成了1,那么它们就是负数。
实际上说的是计算机在处理数值是,最高位(bit)作为了符号位的问题。但其实 - 号,计算机也不能直接处理,所以即便是十进制实际处理时仍然用的是将最高位当作符号位的方式。
反之,程序语言处理都比较智能了,所以写代码的时候也能这样:
int a = -0x1A; // 即 负26
说的是最高位——符号位,你不用负号的话,十进制int型最高只能用到第31个bit,最高位——第32bit位你是接触不到的,除非你加负号。
可以这样玩:
private static int a = Integer.MAX_VALUE + 1;也可以直接这样玩:
private static int a = (int) 2147483648l;都是:
-2147483648不过讨论这些冷知识,价值不高。