int 转二进制 判断原来每个位置上是0还是1

liujunshi603 2010-03-31 05:25:39
有个一个6位的二进制数,被转成int存进了数据库。
现在要将这个int取出来,然后如何在转成二进制数,而依然可以读到原来6个位置上是0还是1。
比如:
之前是000111,存入数据库是7。
现在把7取出来,转成二进制,就变成111,那么用程序怎么判断原来前三个位置上是什么呢(就是000111的前三个位置)?
当然用眼睛一看就知道都是0 了。

或者可不可以int转化成二进制时做格式化呢?让它必须是六位的出来。
...全文
464 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjh811 2010-03-31
  • 打赏
  • 举报
回复
可以右移后再与0x01进行&运算 得到第一位的数字

class ByteMove 
{
public static void main(String[] args)
{
int i = 7;
move(i);
}

static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}

输出结果:
第1位:1
第2位:1
第3位:1
第4位:0
第5位:0
第6位:0
快乐的2 2010-03-31
  • 打赏
  • 举报
回复
不全的头部补零就可以了.
int length = 6;
for(int i = 0; i < length-num.length(); i++){
num = "0"+num;
}
joniy 2010-03-31
  • 打赏
  • 举报
回复
DecimalFormat df = new DecimalFormat("000000");
minimice 2010-03-31
  • 打赏
  • 举报
回复
byte[] binary = {0,0,0,0,0,0};

7转换成111后,把后三个0替换,前三个0不动就行。
同理,其它数转成几位两进制数,就把后几位替换了,前面的不动!


或者你就用NumberFormat格式化一下行!
验证码识别 2010-03-31
  • 打赏
  • 举报
回复
up up

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧