求教达人:java中如何得到一个二进制数的哪几位是1,要求不用遍历数位? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一下: 我想根据一个二进制数组,来从一个另对象数组中检索出对应的对象,如二进制数组:int[]{1,0,0,1,1,0}对象数组:String[]{"a","b","c","d","e","f"}得到的结果是{"a","d","e"} package com.abc.pkg1;import java.util.ArrayList;public class ClassOne { static java.util.List<Integer> tonum = new ArrayList<Integer>(); public static void main(String [] args){ System.out.println(transform(7)); } public static String transform(int num){ int remainder = num; StringBuffer numberTwo = new StringBuffer(); while(remainder !=0 && remainder!=1){ int g =(remainder%2); tonum.add(g); if(g==1){ remainder =(remainder - 1)/2; }else{ remainder =remainder/2; } } if(remainder==1){ tonum.add(1); } for(int i=0;i<tonum.size();i++){ numberTwo.append( tonum.get(i).toString()); } return numberTwo.toString(); } } 如果只是计算二进制序列中“1”的个数,那 Hacker's Delight 中有一个复杂度为 O(1) 的算法。但是如果想得到在第几位上出现过“1”那不用遍历估计做不到。 不遍历(traverse)可以做到么?看看... 位数num初始为第0位。for循环{ 余2计算判断是否等1,等1则记下位数,存入vector或输出。 右移。 位数num++。} JLabel对齐啥意思 局域网传递数据的问题?????? 汉字的ASCII是怎么算出来的 怎么在文体框中直接复制粘贴图片 关于tomcat项目下,js如果用url的相对路径的问题 关于Applet的问题 请问我开发以下项目需要掌握什么知识? 请教:连接数据库的JavaBean中如何写数据库的相对路径? drawString时怎样规定显示区域?? 我是jave初学者,不知开发工具适合我,并且在哪里下载?? 如何用Java关闭一个进程 JAVA 空指针异常问题
二进制数组:int[]{1,0,0,1,1,0}
对象数组:String[]{"a","b","c","d","e","f"}得到的结果是{"a","d","e"}
static java.util.List<Integer> tonum = new ArrayList<Integer>();
public static void main(String [] args){
System.out.println(transform(7));
}
public static String transform(int num){
int remainder = num;
StringBuffer numberTwo = new StringBuffer();
while(remainder !=0 && remainder!=1){
int g =(remainder%2);
tonum.add(g);
if(g==1){
remainder =(remainder - 1)/2;
}else{
remainder =remainder/2;
}
}
if(remainder==1){
tonum.add(1);
}
for(int i=0;i<tonum.size();i++){
numberTwo.append( tonum.get(i).toString());
}
return numberTwo.toString();
}
}
{
余2计算判断是否等1,等1则记下位数,存入vector或输出。
右移。
位数num++。
}