`
Ramls
  • 浏览: 37599 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

QQ 交流群 124343668  欢迎交流

 

//Java中的位运算­

/*计算机由复杂电子元器件构成,一个电子元器件有带电和不带电的两种状态,1和0­

多个这样的元器件的组合可以表示更多状态,也就是可以表示更多的数据,­

一个元器件可以表示一位(bit)数据,这种表示数据的方式称为2进制­

在实际的电子设备中,将8个元器件组合在一起,形成一个单元,这样的单元叫做一个字节(byte)­

一个字节能表示2^8=256个数,即0-255­

2个字节能表示2^16个数,即0-2^16-1­

4个字节能表示2^32个数,即0-2^32-1­

一个字节(byte)由8个二进位(bit)组成,­

最右边的称为最低有效位,最左边的称为最高有效位­

每一个二进位的值都是0或1*/­

/*在计算机中常采用16位进制的方法,因为二进制书写太长,容易出错­

16进制的f代表十进制中的15,在二进制中需要4位(bit)1111来书写­

16进制中的ff代表十进制的255,在二进制中需要8位(bit)11111111来书写*/­

//在计算机中只有数值,可以用数值表示不同的含义,如内存的数值可代表不同的含义

 

 

­

­

//原码、反码和补码­


/*原码:将最高位作为符号位(1为负,0为正),其余各位代表数值本身的绝对值(二进制表示)­

以一个字节的数值为例:­

+7:00000111­

-7:10000111­

而问题在于:­

+0:00000000­

-0:10000000­

这样表示数值不唯一,因而在计算机中很少采用原码*/­

/*反码:一个数如果为正,则它的反码和原码相同,如果为负,符号位为1,其余各位对原码取反­

如:­

+7的原码是:00000111­

+7的反码是:00000111­

-7的原码是:10000111­

-7的反码是:11111000­

问题还是:­

+0的反码是:00000000­

-0的反码是:11111111*/­

/*补码:利用溢出,我们可以将减法变成加法//主要就是怎么操作、运算,使结果满足我们的需要­

对于十进制,如果要从9得到结果5,我们可以用减法:­

9-4=5­

因为4+6=10,我们将6作为4的补数,将上式的减法改成加法:­

9+6=15­

去掉高位1(也就是减去10),得到结果5

 

 

 

­

对于16进制,如果从C得到结果5,我们可以用减法:­

C-7=5­

因为7+9=16,我们将9作为7的补数,将上式的减法改成加法:­

C+9=15(十进制中21)­

去掉高位1(也就是减去16),得到结果5*/­

/*在计算机中,如果我们采用1个字节来表示一个数,则这个字节有8位(bit)­

超过8位(bit)就进1,在内存中情况为:­

1 00000000­

进位1被丢弃*/­

/*补码:如果一个数如果为正,则它的原码、反码和补码相同­

如果一个数为负,则符号位为1,其余各位对原码取反,然后整个数加1­

为了简单起见,以一个字节来表示一个整数:­

+7的原码为:00000111­

+7的补码为:00000111­

-7的原码为:10000111­

-7的补码为:11111000//第一步取反­

                 +1//第二步加1­

            ----­

            11111001//得到结果­

0的补码表示为:­

+0的补码为:00000000­

-0的补码为:10000000­

第一步 取反:11111111­

第二步 加1:100000000­

第三步进位1被丢弃,得到结果00000000与+0的表示相同*/­

/*已知一个负数的补码,转换成十进制数,步骤为:­

1.先对各位取反­

2.将其转换成十进制数­

3.加上符号,再减去1­

例如:11111010,最高位是1,是负数,先对各位取反,变成00000101;­

转换成十进制数5,加上符号,变成-5,再减去1,变成-6*/

 

­

­

//位运算符(是对位(bit)进行运算,而不是对数值进行运算)­

/*Java中有4个位运算符:­

  &  按位与­

  |  按位或­

  ^  按位异或­

  ~  按位取反­

1.按位与­

  01101101­

  00110111­

  ----­

  00100101­

结论:按位与,只有壹(1)壹(1)与操作为1­

2.按位或­

   01101101­

   00110111­

   ----­

   01111111­

结论:按位或,只有零(0)零(0)或操作为0­

3.按位异或­

   01101101­

   00110111­

   ----­

   01011010­

结论:按位异或,只有零(0)壹(1)或者壹(1)零(0)异或操作为1­

4.按位取反­

~ 01101101­

   ----­

   10010010­

结论:按位取反,只要将1变成0,0变成1

 

­

­

//Java中的移位运算符­


/*java中三个移位运算符:­

左移:<<­

带符号右移:>>­

无符号右移:>>>

class count­

{­

public static void main(String[] argus)­

{­

int i1=-1;­

int i2=i1<<2;­

System.out.println(i1);­

System.out.println(i2);­

int i3=0xffffffff;­

int i4=i3<<2;­

System.out.println(i3);­

System.out.println(i4);­

}­

}

 

 

分享到:
评论

相关推荐

    Java中位运算符.pdf

    Java中位运算符 Java 中位运算符概述 Java 中位运算符是用于对二进制位进行操作的运算符。这些运算符可以对整型和字符型数据进行操作,操作结果为一个整数。位运算符可以分为一元运算符和二元运算符两种。 位...

    Java中的运算符Java中的运算符

    Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java...

    Java中位运算符在操作逻辑型数据时与逻辑运算符&&、-、!不同的测试

    Java中位运算符在操作逻辑型数据时与逻辑运算符&&、||、!不同的测试,测试结果逻辑运算符左侧的表达式会进行运算、右侧的不会,非运算一定会变;位运算符两侧都会变

    13.java位运算符.zip

    13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...

    34.java短路逻辑运算符.zip

    34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip...

    java位运算符之&AND操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理二进制数据或者进行高效计算时。在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这...

    JAVA中位运算符合移为运算符

    在阅读《JAVA中位运算符和移位运算符.docx》文档后,您将能更深入地理解这些运算符的实际应用和潜在的陷阱。无论是学习源码解析还是使用相关工具,掌握这些知识都将对您的Java开发工作大有裨益。

    超多Java初学者学习实例集锦.rar

    超多Java初学者学习实例集锦,涉及到Java中算术运算符的使用、Java中位运算符的使用、break语句的使用、continue语句的使用、用do-while语句计算10的阶乘、用for语句计算10的阶乘、Java中逻辑运算符的使用、求三个数...

    基于 Java封装 的位运算符,使用位运算符时更加方便

    【作品名称】:基于 Java封装 的位运算符,使用位运算符时更加方便 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: ...

    java学习-java的运算符

    本资料包"java学习-java的运算符"是针对Java运算符的学习资源,旨在帮助你深入理解和熟练运用Java中的各种运算符。 1. **算术运算符**:Java中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余...

    9.java赋值运算符.zip

    9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip...

    35.java三元运算符.zip

    35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元...

    32.java关系运算符.zip

    32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系...

    30.java赋值运算符.zip

    30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值...

    10.java算术运算符.zip

    10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术...

    java条件运算符

    这是java的条件运算符的基本例子,可参照代码来学习。

    java位运算符之左移操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理底层数据和优化代码性能时。左移操作符()是位运算符之一,它在Java中有着特定的应用和理解。本篇文章将深入探讨Java中的左移操作符及其相关知识点。...

    Java中算术运算符的使用

    Java中算术运算符的使用 初级 很简单 特别适合入门的人学习

    14.java三位运算符.zip

    Java中的三元运算符,也称为条件运算符,是编程语言中的一种简洁表达方式,用于在单个语句中执行条件判断。它提供了一种替代传统if...else语句的方法,尤其是在需要根据某个条件返回一个值时。在Java中,三元运算符...

    33.java逻辑运算符1.zip

    33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33...

Global site tag (gtag.js) - Google Analytics