巧用移位和按位与运算符输出二进制补码

原创 2007年09月23日 02:14:00

一 问题描述
   给定任一整型值,输出其二进制补码(即机器码)。
二 求解思路
   整型值在机器中正是以二进制补码存放,在JAVA中,用print函数输出的是其十进制形式。&运算符会将两边的操作数按其二进制形式逐个bit求与,并最终生成一个整型值(不同于逻辑与,生成的是boolean)。这样,可利用比特1去逐位测试,结果不为0,说明待测试位为1,否则为0。将一个整型值的每一bit都确定了,其二进制补码也就确定了。
三 编程实现
   public class Bcode{
       
     public static void main(String[] args) {
      
          pBcode(-1);
       
       
    }
    static void pBcode( int i) {               
    System.out.print(i+"的二进制补码是:");
     
   
    for(int j = 31; j >=0; j--) {
   
      if(((1 << j) &  i) != 0)    //用 00000000000000000000000000000001移位实现比特"1"测试
        System.out.print("1");
      else
        System.out.print("0");
    }
  
  }

}
输出结果为   -1的二进制补码是:11111111111111111111111111111111 

位运算总结(按位与,或,异或)

按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;       即:两位同时为“1”,结果才为“1”...
  • sinat_35121480
  • sinat_35121480
  • 2016年12月07日 23:40
  • 3708

C++输出二进制、十进制、八进制和十六进制以及左移右移运算符的总结

#include //#include using namespace std; int main(void) { int i,j,k,l; c...
  • hannea
  • hannea
  • 2014年04月13日 21:23
  • 2749

5、位运算符、按位与、按位或、按位非、左移、右移、原码、反码、补码

 位运算符的基本规则 1,位运算符都是针对整数的二进制数字形式而进行的。 2,按位与运算基本规则(规则表): 1 & 1 ==> 1 1 & 0 ==> 0 0 & 1 ==> 0 ...
  • HRaymon
  • HRaymon
  • 2015年01月11日 20:58
  • 2055

Java 位运算(移位、位与、或、异或、非) 以及负数的二进制相互计算

转自:http://blog.csdn.net/xiaochunyong/article/details/7748713 点击打开链接 Java提供的位运算符有:左移( > ) 、无...
  • csdnliuxin123524
  • csdnliuxin123524
  • 2017年12月21日 16:26
  • 82

java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题

一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是...
  • liuhaomatou
  • liuhaomatou
  • 2014年11月24日 14:36
  • 7016

JAVA:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题(5)

一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是...
  • kyp23
  • kyp23
  • 2017年07月18日 13:45
  • 107

二进制补码及与移位

二进制补码及与移位  1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号...
  • zxj1988
  • zxj1988
  • 2011年05月20日 20:06
  • 2939

java 移位运算符,取反运算符 >> << >>> ~ , java 负数补码存放规则等同于机器存储

移位运算代码如下: package SimpleGrammar; /** * * @author jaloli * * (1)负数存储:java 等同于机器,都是用补码存,补码的规矩, ...
  • nx188
  • nx188
  • 2016年06月11日 09:32
  • 370

按位与、按位或、按位异或、左移、右移运算符的简单介绍(部分二进制运算符的简单介绍)

C语言中集中二进制运算符的介绍 1.  按位或:| 将两个二进制的数字对应位数进行比较,只要有一个为1,则结果中对应的位数为1.比如以:十进制的3和十进制的2为例:   3的二进制   0000 00...
  • wanghy_ios
  • wanghy_ios
  • 2015年07月25日 23:43
  • 589

详解移位运算符-二进制中1的个数

1,左移运算如果处理负数的时候是咋样的呢???会不会通过左移将一个负数变成正数??? 2,左移右移的时候,它的位数有的限制吗???可以无限大吗??? 3,详解二进制中的1的个数...
  • msdnwolaile
  • msdnwolaile
  • 2016年06月28日 12:31
  • 705
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:巧用移位和按位与运算符输出二进制补码
举报原因:
原因补充:

(最多只允许输入30个字)