A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毕影彬 中级黑马   /  2012-10-29 10:10  /  1597 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 毕影彬 于 2012-10-29 18:22 编辑

int x=0x1234567;
int a;
{
程序代码
}
a=0x34;

程序代码要自己实现。
其中的程序代码是你自己写的,其功能是把整形十六进制x的第三、四个位置的数取出来,重新附在十六进制a上,最后输出

2 个回复

倒序浏览
a=(x<<12)>>24;

左移12位,再右移24位.
回复 使用道具 举报
  1. public class SubNumTest {
  2.        
  3.         public static void main(String[] args) {
  4.                 int x=0x1234567;
  5.                 int a = getSubNum(x);
  6.                 System.out.println("0x" + Integer.toHexString(a));
  7.         }

  8.         public static int getSubNum(int x) {
  9.                 //将x转换为二进制,并以字符串形式返回
  10.                 String binaryX = Integer.toBinaryString(x);
  11.                 int xLen = binaryX.length();
  12.                 //firstLen表示x的二进制表现形式下对应于十六进制第一位数字的位数
  13.                 int firstLen = xLen % 4;
  14.                
  15.                 int beginIndex;
  16.                 int endIndex;
  17.                 if (firstLen == 0) {
  18.                         beginIndex = 8;
  19.                 } else {
  20.                         beginIndex = firstLen + 4;
  21.                 }
  22.                 endIndex = beginIndex + 8;
  23.                
  24.                 //subBinaryX为截取后的二进制以字符串形式返回的值
  25.                 String subBinaryX = binaryX.substring(beginIndex, endIndex);
  26.                 int subBinaryXInt = Integer.parseInt(subBinaryX, 2);
  27.                 return subBinaryXInt;
  28.         }

  29. }
复制代码
将x先转化为二进制形式,并截取第3、4位对应的二进制子串。

其中由于x的第一位数字对应的二进制数有可能省略开头的数字0,所以要先判断第一位数字对应的二进制数的位数。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马