java之位运算和变量问题

int x=10, 这明显是变量,但我想知道能不能把他当常量用,就是以后遇到x时,就当10用,还是说不行,我就是想知道如何判断他是常量还是变量,有什么方法可以判断吗,还有字符常量是‘n‘这样表示的,那怎么写,一个符号才表示这个字符常量呢?

2.位运算>>和<<是怎么运算的,谁知道

final double PI = 3.14;

加个final就是常量了啊!

“abc”这样的叫字符常量

<<左移是把运算数的二进制码整体左移到指定位数空出来的位用0来补充。

>>右移  如果是正数用0来补充 如果是负数则用1来补充

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-06
1.首先你要知道什么是常量什么是变量才行。。。还有常量和变量要怎么用。。当变量不变的时候也可以当常量来用。。一般常量在小型编程时是很少用的。。一般常量是用来定义一些东西的比如说屏幕大小,最大尺寸,最多容量等等。。在java中一般用final关键词来定义常量。。如果你要改变常量会报错。。 因为在java中还有作用域的问题如果你想到处都可以用到这个常量还要用到static这个关键词。用了static你甚至可以在别的class中调用这个常量。。还有正如楼上说的。。常量命名通常要全大写各个单词中间用'_'连接 我不明白什么一个符号表示一个字符常量
难道你是想说怎么定义? 变量char n = 'n'; 常量 static final char N = 'n'; 貌似你的基础不是很好啊。。
2. >>和<<楼上说过了是位移运算。。在计算机中大量用于二进制运算 。
其实跟数学中的小数点移动差不多的意思。。楼上已经给出了很好的解释了。只是要注意最大值和最小值的问题追问

变量char n = 'n'; 常量 static final char N = 'n',你的意思是没有关键字,char n = 'n';他只能当变量用,不能把他视作为常量吗,是吗

追答

我都在之前说了。。当变量不改变时可以当常量用。。。。。变量只是允许你改变这个参数的值。。而当你使用这个变量的时候和使用常量没什么区别。。。你不需要太在意区分常量和变量。。灵活运用是关键。。其实很多情况下变量是可以取代常量的。。而常量最多是使用在规范化和灵活调用经常需要用到的参数值。。如数学中的 pi 可以定义一个常量然后在后面运算中大量调用。。不要用过多的常量。。这牵扯到内存管理。。因为常量在内存中是一直存在的直到程序作废。。大量使用常量是会占内存的。。。

本回答被提问者和网友采纳
第2个回答  2011-07-07
int x=10,不能当做常量用啊,如果int x 的值改变了,你还把它当10来用,那岂不是悲剧了。。java声明常量 在前面加上final关键字,final int x=10,这样,这个值就不会改变了;
<<和>>,所有的字符,在计算机内部是用2进制数表示的,1的二进制是0001,2的是0010,3是0011,4是0100,5的二进制是0101。。。。。位运算,>>是右移,>>1是右移一位,0001右移一位之后是0000,0010右移一位后是0001.。。。。。
<<左移 跟右移相反,上面列出的是最基本得情况。还有些特殊情况,自己上网查吧。追问

1.是不是一定要把数字转换为二进制数,还有移位后位数不够时补0,是怎么样的,举个例子,还有进制-20转换为二进制时是11101100,为什么他>>2是11111011,他却是补1呢。正数在不前面补0 ,负数前面是用1表示, 能说清楚点吗(负数左移右移都补1吗,正数左移右移都补0吗)
2.只要x不改变,以后遇到x就当常量用,行吗

第3个回答  2011-07-13
1、常量用static或者final关键字修饰声明
2、判断常量的方法不知道,再说也没什么用嘛
3、'n'是字符常量
4、位运算对应的是二进制的运算,比如无符号数5就是0101
value << num
这里,num 指定要移位值value 移动的位数。也就是,左移运算符<<使指定值的所有位都左 移num位。每左移一个位,高阶位都被移出(并且丢弃),并用0填充右边。这意味着当左移的运 算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃;当左移的运算数是long 类型时, 每移动1位它的第63位就要被移出并且丢弃。
第4个回答  2011-07-05
首先回答 闪炫007 回答的答案,在java里面是没有 const 这个关键字的。你可以这样认为,在编程里面出现了const 这个关键字,肯定这门编程语言就不是java。
在java里面定义常量是使用 final 关键字, 通常常量名全部用大写字母表示。其他规则和标识符一样。

>> 和 << 是位运算符,你可以直接把一个数字转换成二进制 通过 左移或右移 跟在<<符号后面的数字就表示要移动多少位,例如: 8 的二进制数是 1000 >>2 后就变成了 0010也是十进制的2 。移位后位数不够时补0,还有什么不清楚的可以直接发信息给我。追问

是不是一定要把数字转换为二进制数,还有移位后位数不够时补0,是怎么样的,举个例子,还有十进制-20转换为二进制时是11101100,为什么他>>2是11111011,他却是补1呢

追答

java在内存中表示正负是这样的,正数在不前面补0 ,负数前面是用1表示。也就是说移位后一个负数可能会变成一个很大的正数。比如用 >>>2来位移时,你得到的结果就是一个非常大的正数。

追问

正数在不前面补0 ,负数前面是用1表示, 能说清楚点吗(负数左移右移都补1吗,正数左移右移都补0吗)

追答

在内在中正数前面用0表示 ,负数前面用1表示。

两个移位符它是会管你是正数还是负数,
>>移位的话会在前面补1,
>>)它不管你是正数还是负数都是直接补0。

前两次因为是半夜写的,可能当时思维有点乱不好意思。

追问

你的意思是正数左移右移都补0,负数特殊,>>移位的话会在前面补1,后面补0,>移位的话会在前面补1,
<<移位的话会在后面补0。)你这句话到底针对正数还是负数

追答

只有用 >>> 或者 <<< 才会再前面补1,其他情况都是补0

脚本语言系列之Java | Java中的运算符
位运算符用于在二进制级别操作变量。它们包括位与、位或、位异或和位移操作。例如:`int a = 5, b = 3; int result = a & b;`,这将进行位与运算,将`5`和`3`的二进制位进行与运算。三目运算符,也称为条件运算符,提供了一种简洁的方式来执行基于条件的计算。格式为:`(关系表达式)?...

常常遇到“位”的问题,请哪位高手详细讲解一下电脑中位的概念...
Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算:运算符 结果 ~ 按位非(NOT)(一元运算)& 按位与(AND)| 按位或(OR)^ 按位异或(XOR)>> 右移 >>> 右移,左边空出的...

JAVA里面的位运算符>>,<<,>>>是什么意思,请举个列子具体说明一下?_百 ...
上面举的例子15<<2=60,即乘了4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。例如,假设以一个字节(8位)存一个整数,若a为无符号整型变量,则a=64时,左移一位时溢出的是0,而左移2位时,溢出的高位中包含1。

java问题
“|”是按位或运算(位运算),两个数的2进制,相对应位有一个是1,结果就是1 如4的2进制是100 3的2进制是011 4|3就是:100 011 --- 111 十进制为7 如果是4&3(按位与运算,两数2进制相对应位都为1结果才能为1),结果就是0了。

Java中位运算,如图
首先你要知道这么几个规定:1、正数的补码 = 原码 2、负数的补码 = 原码的反码 + 1 3、负数的原码 = 补码的反码 + 1 4、 负数的求反,符号位不变 第一个问题:-126在计算机中以补码形式存在,所以右移后的1100 0001依旧是补码 第二个问题:参照上面的第3条规定 ...

java位运算符问题。x=4.y=2,求Z. (1)Z=~X (2)Z=<<Y (3)Z=>>>Y_百度...
(1)-5 (2) 4 (3) 1

JAVA位运算怎么用的???
Java 位运算 Java 位运算[转]一,Java 位运算1.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (l)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对...

JAVA位运算符
位操作符允许我们操作一个基本数据类型中的整数型值的单个“比特(bit)”,即二进制位。位操作符会对两个参数对应的位执行布尔代数运算,并最终生成一个结果。 位操作符来源于 C 语言面向底层的操作,那时我们经常需要直接操纵硬件,设置硬件寄存器内的二进制位。Java的设计初衷是嵌入电视机顶盒内,所以这种低级操作仍...

java初级面试题目?
回答:float变量名=1.2f;回答出不加最后的f为双精度浮点类型,加分 4.equals和==的区别? 回答:equals是值比较(一般处理java开发都会这么说,算是ok的)而==是引用比较(或者对象比较);回答equals是可以自定义的,加分 5.将一个数组作为参数传递到一个方法中,在方法中,数组内的元素值被改变了,那么在方法外部,这个...

你也太捞了吧!Java的五种运算符 还不知道?盘它!
比较运算符:==、!=、>、=、<=,Java中使用 == 表示变量内容相等。逻辑运算符:&、|、!、^、&&、||。其中&表示逻辑与,|表示逻辑或,!表示逻辑非,^表示逻辑异或,&&和||表示逻辑与和或,具有短路操作特性。位运算符包括:&、|、~、^、>>、>>>、<<。这些运算符在二进制中进行操作,遵循...

相似回答