常常遇到“位”的问题,请哪位高手详细讲解一下电脑中位的概念...

常常遇到“位”的问题,请哪位高手详细讲解一下电脑中位的概念,越详细具体越好,满意加分!!

C#的位运算我不太熟.我给你说一下JAVA的位运算吧.

Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算:
运算符 结果
~ 按位非(NOT)(一元运算)
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
>> 右移
>>> 右移,左边空出的位以0填充
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充
<<= 左移赋值

既然位运算符在整数范围内对位操作,因此理解这样的操作会对一个值产生什么效果是重要的。具体地说,知道Java 是如何存储整数值并且如何表示负数的是有用的。因此,在继续讨论之前,让我们简短概述一下这两个话题。

所有的整数类型以二进制数字位的变化及其宽度来表示。例如,byte 型值42的二进制代码是00101010 ,其中每个位置在此代表2的次方,在最右边的位以20开始。向左下一个位置将是21,或2,依次向左是22,或4,然后是8,16,32等等,依此类推。因此42在其位置1,3,5的值为1(从右边以0开始数);这样42是21+23+25的和,也即是2+8+32 。

所有的整数类型(除了char 类型之外)都是有符号的整数。这意味着他们既能表示正数,又能表示负数。Java 使用大家知道的2的补码(two's complement )这种编码来表示负数,也就是通过将与其对应的正数的二进制代码取反(即将1变成0,将0变成1),然后对其结果加1。例如,-42就是通过将42的二进制代码的各个位取反,即对00101010 取反得到11010101 ,然后再加1,得到11010110 ,即-42 。要对一个负数解码,首先对其所有的位取反,然后加1。例如-42,或11010110 取反后为00101001 ,或41,然后加1,这样就得到了42。

如果考虑到零的交叉(zero crossing )问题,你就容易理解Java (以及其他绝大多数语言)这样用2的补码的原因。假定byte 类型的值零用00000000 代表。它的补码是仅仅将它的每一位取反,即生成11111111 ,它代表负零。但问题是负零在整数数学中是无效的。为了解决负零的问题,在使用2的补码代表负数的值时,对其值加1。即负零11111111 加1后为100000000 。但这样使1位太靠左而不适合返回到byte 类型的值,因此人们规定,-0和0的表示方法一样,-1的解码为11111111 。尽管我们在这个例子使用了byte 类型的值,但同样的基本的原则也适用于所有Java 的整数类型。

因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的顺序如何,它决定一个整数的符号。

例://BitOperation.java
public class BitOperation{
public static viod main(String args[]){
int a=5,b=2,c=-13;
System.out.println("~a="+(~a~~a=-6));
System.out.println("a&b="+(a&b));
System.out.println("a|b="+(a|b));
System.out.println("a^b="+(a^b));
System.out.println("a<<b="+(a<<b);
System.out.println("a>>b="+(a>>b));
System.out.println("a>>>b="+(a>>>b));
System.out.println("c>>1="+(c>>1));
System.out.println("c/2="+(c/2));
}
}

运行结果:
~a=-6
a&b=0
a|b=7
a^b=7
a<<b=20
a>>b=1
a>>>b=1
c>>1=-7
c/2=-6
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-01
O和1,一个O或一个1叫一位,8个位组成一个字节,2个字节组成一个标准汉字,处理的位数越高,表明其运算速度越快,通常我们说的64位 32位是指的处理器(CPU)一次能够并行处理的数据位数,目前8位、16位已很少用了,大多数使用的是是32位处理器(如P4),64位CPU也已陆续粉墨登场,(如扣肉)本回答被提问者采纳
第2个回答  2007-09-01
小学是的个位,十位,百位 不记得了?
不过计算机采用二进制,所以这里指的是二进制位便是了。
至于低位、高位,第几位等概念很简单啊,难道你不知道十位的比个位高一个位。
在强调一次,是二进制。

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

我家电脑不管做什么都这个16位什么的 烦死了 这是为什么? 求高手给...
\/purgecache:用来清除文件缓存(该文件默认情况下是在%systemroot%\\system32\\dllcache下)并立即扫描所有受保护的系统文件,常在其后还要加上“\/cachesize=x”这个参数,这个参数是用来设置文件缓存大小的,以MB为单位,该参数如果设置较小可以节省硬盘空间,如果设置大一些可以保护系统文件,则可能尽可能地恢复更多的系统文件。

中位数与平均数有何区别?快考试了,请哪位数学高手帮忙解答.急!!
平均数:是指在一组数据中所有数据之和再除以数据的个数。它是反映数据集中趋势的一项指标。表示平均水平 如果数据相差比较大 适合用中位数 相差不大用平均数.这样说吧:数据的大小差不多时,取平均数;当数据的大小有明显较大的差异时,且数据数量不多时,取众数;当数据的大小有明显较大的差异时,...

有哪位高手可以指教一下这是什么意思?
一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 假如是双内存,而且是不同品牌的内存条混插或...

请哪位电脑高手帮我解决一下
【3】病毒引起的:升级杀毒软件或下载专杀工具,对电脑全盘杀毒。【4】硬件引起的:如果是内存条引起的,把内存条拆下清理干净重新安装。必要时【更换】内存条。(硬件上很少出现该问题)【5】软件引起的:安装的软件与系统或其它软件发生冲突,盗版或带病毒的(游戏等)其它软件,如果您使用正版软件,就...

计算机高手请进
(1)、在字操作时,发生低字节向高字节进位或借位时;(2)、在字节操作时,发生低4位向高4位进位或借位时。PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位...

电脑一开机就会弹出这个,哪位电脑高手指点下怎么解决
1.电脑中了木马或者有病毒在干扰!试试:杀毒软件,360安全卫士+360杀毒双引擎版,或者金山卫士+金山毒霸,建议:修复“高危”和“重要”漏洞!使用“木马云查杀”和“360杀毒”,“全盘扫描”和“自定义扫描”病毒和木马,删除后,重启电脑!开机后,点开“隔离|恢复”,找到木马和病毒,彻底删除!2....

哪位高手给分析一下办公室座次风水?谢谢
2014办公室风水布局原则一:忌背门而坐在办公室风水之中,人如背门而坐,座位后方没有了依靠,门也是人进入的必经之处,长时间将会受到人往的杂气冲击,使办公室人员时常处在一种紧张的状态之中。2014办公室风水布局原则二:忌靠走道的窗边而坐窗口是办公室另一个进气口,同样纳入了生气与煞气,如靠...

哪位高手帮我算一下,尽量详细
丁日辛丑时生,丑为丁的财库,丁以丑中辛为偏财,以丑中己为食神,丑位使辛金健旺,暗里的己土得位,使丁火气息微弱,如有失天时,且没有扶助的,入赘女家才能发迹;如果有补救的,命主财富充盈。 丁未日辛丑时生,时日相冲,对妻子、儿女不利。生于酉月,且通水气,以吉命论,岁运也一样。 月日时命理 十二月生...

如何求中位值?需要超超高手回答喔.
回答:{=MEDIAN(IF(EXACT(A1:A300,"A"),(B1:B300),""))}

相似回答
大家正在搜