`
zhb8015
  • 浏览: 396705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

二进制换算,操作符

 
阅读更多

一、基础知识

二、实例解析(重点)

三、参考文章

一、原码、补码、反码

http://baike.baidu.com/view/742694.htm

Thinking In Java

3.1.8 移位运算符
移位运算符面向的运算对象也是二进制的“位”。可单独用它们处理整数类型(主类型的一种)。左移位运算符(<<)能将运算符左边的运算对象
向左移动运算符右侧指定的位数(在低位补0)。“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。
“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(>>>),
它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。


二、PS::(实例解析)

 

System.err.println("-20 >> 3===" + (-20 >> 3));//两次取补32位 System.err.println("20 >> 3===" + (20 >> 3)); //2 (20/8=2) System.err.println(("-20 << 3==")+ (-20 << 3)); //两次取补32位 System.err.println("20 << 3==" + (20 << 3)); //160 (20*8=160) System.err.println("-20 >>> 3===" + (-20 >>> 3)); //一次取补,移位,结果 System.err.println("20 >>> 3===" + (20 >>> 3)); //2 (20/8=2) //sepcial System.err.println("-1 << 10===" + (-1 << 10));//两次取补32位 System.err.println("-1 << 24===" + (-1 << 24));//两次取补32位 System.err.println("-1 >> 10" + (-1 >> 10)); System.err.println("-1 >> 24" + (-1 >> 24)); System.err.println("-20 >> 10==" + (-20 >> 10)); ////两次取补32位 P.p("-----" + (4 >> 3)); System.out.println("=====" + (-1 >>> 1)); } }

/* * 11111000 –8 >>1 11111100 –4 1、求-8的补码(反码+1)==>11111000 2、移位(>>1)去掉右边最后一位,在左边+1(因为是负数)==>1111 1100(最高位为1,值为负) 3、再求补码(反码+1) */

/** int a = -1; a = a >>> 24; 下面用二进制形式进一步说明该操作: 11111111 11111111 11111111 11111111 int型-1的二进制代码>>> 24 无符号右移24位00000000 00000000 00000000 11111111 int型255的二进制代码 */

/* 在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。 右移一位相当于除2,右移n位相当于除以2的n次方。 对于正数来说和带符号右移相同,对于负数来说不同。 */

/* System.err.println("-1 << 10===" + (-1 << 10));//两次取补32位 1、1的原码:00000000 00000000 00000000 00000001 2、1的补码: 11111111 11111111 11111111 11111111 (原码=反码+1) 3、 11111111 11111111 11111100 00000000 (左移10位,低位补0,最高位为1,值为负) 4、 00000000 00000000 00000011 11111111 ==>(+1) 00000000 00000000 00000100 00000000 ==>1*2^10=1024 结果为-1024 (第三步结果的补码) */



-8 >> 1

/*
 * 11111000 –8 >>1 11111100 –4  
1、求-8的补码(反码+1)==>11111000
2、移位(>>1)去掉右边最后一位,在左边+1(因为是负数)==>1111 1100(最高位为1,值为负)
3、再求补码(反码+1)
 */



三、Reference:

http://wenku.baidu.com/view/a7b747a2284ac850ad024276.html

http://zhidao.baidu.com/question/318286286.html

http://blog.163.com/zh_y_yang/blog/static/181552412201132685034960/

http://jinguo.iteye.com/blog/540150
think in java


分享到:
评论

相关推荐

    C#16进制转换10进制源码

    除了基本的进制转换外,给定的内容中还提到了一些C#中的位操作符,这些操作符对于处理二进制数据非常有用。例如: - `~` (按位取反) - `&` (按位与) - `|` (按位或) - `^` (按位异或) - `(左移) - `&gt;&gt;` (右移) 这些...

    计算机存储单位和进制转换.ppt

    例如,将十进制数55转换为二进制,可以使用除2取余法,55除以2得到余数1,然后依次计算,直到余数为0,将所有余数倒序排列就得到二进制数110111。相反,要将二进制数转换为十进制,可以使用位权法,将每个位上的数字...

    计算机考试练习题.doc

    10. 汇编语言:使用助记符(如ADD、STO)代替二进制,便于人类阅读和编写,但仍然是低级语言,直接对应机器指令。 11. 计算机采用二进制的原因:二进制系统简单,只有两个状态(0和1),易于实现电子设备的物理开关...

    ASCII码的各种换算

    在进行ASCII码的换算时,主要涉及到的是从二进制到十进制或十六进制的转换,以及根据特定的应用场景将控制字符转换为其对应的ASCII值。 - **二进制到十进制转换**:例如,将二进制数`00000010`转换为十进制数`2`,...

    第二章 计算机基础知识习题与答案 (2).pdf

    14. **进制转换**:二进制加减法基于二进制逻辑运算,十进制小数转二进制小数采用乘2取余法。 15. **位的概念**:bit代表二进制位,是计算机中最小的数据单位。 16. **汉字编码**:在汉字系统中,一个汉字的内码...

    东北师范大学计算机应用基础离线考试答案.pdf

    这是基于计算机存储单位的二进制换算规则,即1GB = 1024MB,1MB = 1024KB,1KB = 1024B。 2. 数制转换: - 十进制数45转换成二进制、八进制和十六进制的方法是使用除法和余数法。45的二进制表示为101101,八进制...

    2022年计算机等级考试理论题测试.docx

    10. 单位换算:例如269在十进制中是10EB(10的14次方字节)、1010.101在二进制中是11.33B(二进制小数),以及1010101在二进制中是128D(十进制)。 11. 图像分辨率:如32X32表示图像的像素大小,32B、64B、72B和...

    计算机应用基础.docx

    汇编语言使用助记符(如ADD、STO)代替二进制指令,便于人类阅读。 计算机采用二进制是因为它的运算规则简单,易于物理实现。计算机的内存储器比外存储器读写速度更快,内部信息以二进制形式存储。计算机能够处理...

    2021职称计算机考试基础综合练习及答案(2).docx

    23. **二进制数**:计算机内部采用二进制表示所有信息。 24. **位**:数据的最小单位,二进制数的一位。 25. **字节**:8位二进制数,是存储容量的基本单位。 26. **ASCII码**:用于表示字符的标准编码。 27. **十...

    电大《计算机文化基础》选修平台题库.pdf

    5. 计算机内部所有信息都是以二进制形式存储的,二进制是最基本的数字系统,由0和1组成。 6. 第三代电子计算机使用的是中、小规模集成电路,这是计算机发展的一个关键里程碑,大大提高了计算机的性能和可靠性。 7....

    计算机应用基础复习课.pdf

    2. 存储器容量:存储器容量通常以二进制位(bit)或字节(Byte)来衡量,一个字节由8个二进制位组成。 3. 计算机内部存储:在计算机内部,所有信息都以二进制编码的形式存储,包括ASCII码或BCD码等。 4. 字长:...

    计算机基础知识试题(卷)与答案解析.doc

    23. **二进制的理由**:计算机采用二进制主要是因为其结构简单,运算规则直观,易于硬件实现。 24. **不同进制比较**:在给定的四个数中,(1101100)2是最小的,因为它是二进制数,对应的十进制数是108。 25. **...

    3计算机应用基础答案.docx

    - 二进制:45的二进制形式为101101。 - 八进制:45的八进制形式为55。 - 十六进制:45的十六进制形式为2D。 ### 3. 冯·诺伊曼架构计算机的基本构成 **知识点**:冯·诺伊曼架构的基本组成部分及其功能。 **...

    2021-2022计算机二级等级考试试题及答案No.2514.docx

    15. 1MB等于1024*1024字节,这是二进制单位换算的基本规则。 16. 在Word2003中,状态栏显示页号、节号、页数和总页数等信息。 17. Windows 98的资源管理器中,同一驱动器不同目录下可以有同名文件,但同一目录内不...

    计算机组成原理考试,自检

    - **BCD码**: 二进制编码的十进制数,例如(931)10 = (100100110001)2。 #### 七、二进制四则运算 - **加法规则**: 0 + 0 = 0; 0 + 1 = 1 + 0 = 1; 1 + 1 = 10 - **减法规则**: 0 - 0 = 0; 1 - 0 = 1; 1 - 1 = 0; 0...

    (最新)全国最新计算机一级考试试题库5072629816.pdf

    存储容量的基本单位Byte代表8个二进制位,一个ASCII码字符通常用1个Byte表示。计算机键盘是输入设备,计算机能直接执行的是机器语言程序,操作系统属于系统软件,计算机系统包括硬件和软件系统。计算机病毒的传播不...

    1计算机基础答案.doc

    这是基于二进制的换算规则,即每个单位都是前一个单位的2的10次幂。 2. **数字系统转换**: - 十进制数45转换为二进制、八进制和十六进制是理解不同进制的基础。十进制数45在二进制中表示为101101,因为45除以2的...

Global site tag (gtag.js) - Google Analytics