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

原创 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 

相关文章推荐

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

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

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

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

二进制补码及与移位

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

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

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

韩顺平 java 第二十讲 二进制、位运算、移位运算符

计算机二进制中的原码、补码、反码 计算机内部处理的信息都是采用二进制数来表示。进位规则是“逢二进一” int a = 1; int类型是4个字节,一个字节等于八个bit。所以一共32b...

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

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

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

1,左移运算如果处理负数的时候是咋样的呢???会不会通过左移将一个负数变成正数??? 2,左移右移的时候,它的位数有的限制吗???可以无限大吗??? 3,详解二进制中的1的个数...

C语言 移位运算符求解字符二进制中含1的个数

linux 平台中实践。 1 移位运算符        在C语言中移位运算符分两种:“左移”运算符>。   1.1 功能         移位运算符的功能是将一个数的二进制数左移或者右移多少...

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

如何求二进制中1的个数(三种方法) 思路:1.在32位中,二进制表示数字1方式为 00000000 00000000 00000000 00000001 首先我们的第一个方法就是一位一位的找,从左...
  • NICOC_
  • NICOC_
  • 2017年05月11日 14:48
  • 472

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

在实现这道题之前,我们先来了解下原码、反码、补码。 一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1 原码:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:巧用移位和按位与运算符输出二进制补码
举报原因:
原因补充:

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