`

java二进制运算 原码、补码、反码

    博客分类:
  • java
阅读更多
最近在socket传输时,包头涉及到了二进制的运算,特地做了一下整理。

原码:
   原码是指 把最高位做为符号位(0:表示正数,1:表示负数),其它位数则没有正负之分。
   eg:
   4:0000 0100  -4:1000 0100

反码:
   反码是 如果是正数 表示方法和原码一样,如果为负数,则保留符号位为1,其它位数对其取反。
   eg:
   4的反码:0000 0100   -4的反码:1111 1011

补码:
   补码是计算机运算的一种方式,正数的补码就是其本身,负数的补码为 其反码+1 补码的取值范围为: -128~0~127 共256个。
   eg:
   (4)-(4) = 0    ----10进制
   (0000 0100) + (1111 1100) = (0000 0000)--二进制补码方式运算

位移:(左移、右移都为2的倍数)
   位移操作只针对int型有效。在java中,int的长度,始终为32位,即占用4个字节。byte,short,char,long也可以进行位移操作,但是最终都转换为32位进行操作。
   << 左移 4左移2位 即 4<<2 0000 0100   0001 0000  左移则低位补0.
   >> 右移 4右移2位,即4>>2 0000 0100  0000 0001 右移,如果为正数 高位补0,如果为负数则高位补1
   >>> 无符号右移,则不管是正数还是负数,高位都补0.

位运算符:~(按位非),|(按位或),&(按位与),^(按位异或)
   ~(按位非)对该整数的二进制形式逐位取反 4 ~4:(0000 0100) (1111 1011)再对其进行补码运算 得出为:-5
   |(按位或)两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0
   &(按位与)两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0, 1|1 = 1
   ^(按位异或)两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0, 1|1 = 0 ,0|1=1


/**
* 8位,取高4位
* @param data
* @return
*/
public static int get2HighBit(byte data){
int dataTmp = 0;
dataTmp = (short)(data>>4)&0x0F;
return dataTmp;
}
/**
* 8位,取低4位
* @param data
* @return
*/
public static int get2LowBit(byte data){
int dataTmp = 0;
dataTmp = (short)(data>>0)&0x0F;
return dataTmp;
}


  


分享到:
评论

相关推荐

    二进制-原码-补码-反码.pdf

    "二进制-原码-补码-反码" 在计算机科学中,二进制数是计算机中最基本的表示形式。为了能够正确地表示和处理有符号数和无符号数,计算机科学家们提出了原码、反码和补码三种表示方法。 原码是指在二进制数的最高位...

    二进制原码补码反码.docx

    二进制原码补码反码 二进制原码补码反码是计算机中数字表示的三种方式,它们之间的关系非常重要,深入了解它们可以帮助我们更好地理解计算机的工作原理。 原码 原码是将最高位作为符号位(0表示正,1表示负),...

    php_二进制_原码_反码_补码.docx

    在计算机科学中,二进制是最基本的表示方式。...理解二进制的原码、反码、补码是非常重要的。本文将详细介绍二进制的基本概念、原码、反码、补码的关系,...通过实例分析,展示了 PHP 中的二进制运算和位运算符的使用。

    计算机基础知识:原码反码补码练习(含答案)

    原码、反码和补码是二进制表示正负数的关键概念,它们主要用于无符号整数和有符号整数的表示。以下是对这些知识点的详细解释: 1. **原码**:原码是最直观的二进制表示,其中最高位(称为符号位)为0表示正数,为1...

    二进制-原码-补码-反码

    ### 二进制-原码-补码-反码 #### 一、基本概念 **二进制**是计算机中最基本的数据表示方式,它只包含两个数字:0 和 1。计算机内部的所有数据处理和存储都是基于二进制来进行的。 在计算机科学中,根据是否携带...

    128的二进制有原码_反码和补码[借鉴].pdf

    "二进制数的原码、反码和补码" 在计算机科学中,二进制数的表示方式有多种,包括原码、反码和补码。这些表示方式都是为了方便计算机处理二进制数,并且能够正确地表示负数。 首先, lets talk about 模的概念。模...

    vi.zip_16进制补码_Labview 进制_labview 二进制_labview补码_二进制补码

    这个"vi"程序可能包含了一个用户界面,其中包含输入框让用户输入16进制数值,然后通过编程逻辑实现转换和计算功能,最后在显示区域展示二进制原码、反码和补码的结果。用户还可以通过运行这个VI了解和学习不同进制间...

    补码源码反码转换工具,补码反码原码的转换工具,C/C++

    补码、反码转换工具不仅有助于理解计算机底层的数值表示,还对学习和调试涉及二进制运算的程序非常有用。程序员可以通过这个工具直观地看到不同编码形式间的转换过程,加深对二进制运算规则的理解。 通过这个C++ ...

    原码 补码 反码 按位运算

    原码、补码和反码是三种常见的二进制表示法,主要用于表示有符号整数,而按位运算则是对二进制数进行操作的基础手段。下面将详细阐述这些概念。 一、原码(正码) 原码是最直观的二进制表示方法,直接反映了数字的...

    进制转换及原码反码补码.docx

    进制转换及原码反码补码 在计算机系统中,数字系统是基础部分,很多计算机科学家和程序员需要熟悉不同的数字系统和它们之间的转换。下面我们将详细介绍进制转换、原码、反码和补码的概念和应用。 一、进制数的表达...

    原码、反码、补码三码转换(C#)

    在计算机科学中,原码、反码和补码是用于表示二进制数值,特别是负数的三种方式。本文将详细讲解这三种编码方式,并通过C#编程语言演示如何进行三码之间的转换。 1. 原码(Direct Code): 原码是最直观的二进制...

    进制转换及原码反码补码练习题.doc

    补码解决了原码和反码在加减运算中的不一致性。对于正数,补码与原码和反码相同;对于负数,补码是反码加1。这样,补码的一个重要作用是使得加法和减法运算可以使用相同的硬件电路进行处理。比如+65的补码还是...

    二进制数的原码、反码、补码[文].pdf

    二进制数的原码、反码、补码 在计算机领域中,二进制数的表示方法有三种:原码、反码和补码。这些表示方法都是为了便于计算机对二进制数的存储和运算。 原码是最基本的二进制表示方法。它的最高位是符号位,0 表示...

    原码反码补码讲课.pptx

    在对计算机中的整数进行探讨时,我们不得不提及带符号整数的三种不同编码方式:原码、反码以及补码。这些编码方式在计算机内部用于表示正数和负数,并决定了计算机如何处理整数的加减运算。 首先,我们来定义带符号...

    二进制运算器的源代码

    这是一个模拟计算机进行加法和数的原码、反码,补码的分析工具。我希望这个工具能对需要它的人有所帮助,所以决定通过GNU General Public License发布这个自由软件。我使用的编译环境是VS2010Express。如有问题可以...

    原码补码反码PPT学习教案.pptx

    原码补码反码PPT学习教案.pptx 本资源摘要信息是基于原码补码反码PPT学习教案.pptx文件内容生成的知识点概述。 一、进制数转换 1. R 进制数转换成十进制数 在将 R 进制数转换成十进制数时,只需要“按权展开”...

    原码补码及反码的区别

    总结来说,原码、反码和补码是表示二进制有符号整数的不同方法,其中补码在现代计算机系统中最为常见,因为它能够简化运算并避免一些特殊问题。了解这些概念有助于我们理解计算机内部如何处理数据,从而更好地进行...

    原码补码反码练习题PPT课件.pptx

    原码、补码、反码是计算机科学中最基础的概念,它们是计算机进行数值表示和运算的基础。下面是对原码、补码、反码的详细知识点总结。 1. 原码(Original Code) 原码是指计算机中最原始的二进制代码。它是数字信号...

    原码、反码、补码、移码与浮点.doc

    反码是原码的变形,它将小数表示为二进制数的反码。小数反码的定义为[X]反 = X,0≤X ;整数反码的定义为[X]反 = X,0≤X 。 补码是原码的变形,它将小数表示为二进制数的补码。小数补码的定义为[X]补 = X,0≤X ;...

    原码补码反码练习题PPT学习教案.pptx

    在计算机科学中,原码、补码和反码是用于表示和操作二进制数,特别是有符号整数的关键概念。这些编码方式主要用于处理负数,确保计算的正确性。以下是对这些概念的详细解释: 1. **原码**:原码是最直观的二进制...

Global site tag (gtag.js) - Google Analytics