Tag: 二进制

为什么“010”等于8?

我的简单问题是为什么: System.out.println(010|4); 打印“12”? 我理解按位OR运算符,但为什么“010”等于8? 这绝对不是恭维2的通知,那么如何解码这个数字呢?

Java中数字的所有二进制组合的列表

我正在开展一个涉及“动态编程”的项目,我对这个微不足道的事情感到震惊,请帮忙。 假设我将4作为输入,我想显示类似于:0000到1111的内容 但是,如果我输入5,我想显示如下:00000到11111,依此类推。 提前致谢, 编辑 :请不要发布问我代码。 这不是一个家庭作业问题,我不需要任何代码,只要告诉我它的逻辑,我会很高兴。 EDIT2 :WTH正在发生Stackoverflow,我问过你们有没有为我编写代码? 我希望那个投票赞成它的人。 如果我不能帮忙,这个论坛有什么意义? 与我分享逻辑。 我们可以讨论,我不需要这个代码。 编辑3 :我在这里发布我尝试过的代码。 我希望这个“满意”所有想到我没有尝试过的人。 import java.util.ArrayList; 公共类RegularInvestigator { public ArrayList createCombinations(ArrayList listOfFlightNumbers){ ArrayList result = new ArrayList(); for(int i = 1; i < listOfFlightNumbers.size(); i++) { String binaryEqvivalent = Integer.toBinaryString(i);System.out.println(binaryEqvivalent); String element = ""; for(int j = 0; j < binaryEqvivalent.length(); j++) if(binaryEqvivalent.charAt(j) […]

在Java中将2D二进制矩阵转换为黑/白图像

我是java的新手。 我现在有二维矩阵,只有1和0。 我想将它保存为具有相同宽度和高度的jpg图像(黑色和白色)。 我怎么能意识到这一点? 我尝试了下面的代码,但失败了,说“java.lang.IllegalArgumentException:image == null!” 请帮助我,或给我你更好的解决方案。 非常感谢你。 public static void main(String[] args) throws IOException { //result is double[25][33] binary matrix with only 1s and 0s; int height=result.length; int width=result[0].length;; byte[] data = new byte[height*width]; int k=0; for(int i = 0;i < height;i++){ for(int j = 0; j < width; j++){ data[k]=(byte)result[i][j]; k++; } […]

使用二进制搜索的多个键的最后一个索引?

我在排序数组中多次出现一个键,我想对它们执行二进制搜索,正常的二进制搜索为具有多次出现的键返回一些随机索引,其中我想要该键的最后一次出现的索引。 int data[] = [1,2,3,4,4,4,4,5,5,6,6]; int key = 4; int index = upperBoundBinarySearch(data, 0, data.length-1, key); Index Returned = 6

使用Java从Github下载二进制文件

我正在尝试使用以下方法下载此文件( http://github.com/downloads/TheHolyWaffle/ChampionHelper/ChampionHelper-4.jar ),但它似乎不起作用。 我收到一个空/损坏的文件。 String link = “http://github.com/downloads/TheHolyWaffle/ChampionHelper/ChampionHelper-4.jar”; String fileName = “ChampionHelper-4.jar”; URL url = new URL(link); URLConnection c = url.openConnection(); c.setRequestProperty(“User-Agent”, “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 1.2.30703)”); InputStream input; input = c.getInputStream(); byte[] buffer = new byte[4096]; int n = -1; OutputStream output = […]

如何在Java中将二进制数转换为BigInteger?

我需要将一个非常大的二进制值转换为十进制等值。 因为它是一个大整数我使用BigInteger。 那么如何将这个二进制数转换为BigInteger呢?

了解Java字节

因此,在昨天的工作中,我不得不编写一个应用程序来计算AFP文件中的页面。 所以我除掉了我的MO:DCA规范PDF并找到了结构化字段BPG (Begin Page)及其3字节标识符。 该应用程序需要在AIX机器上运行,因此我决定用Java编写它。 为了获得最大效率,我决定读取每个结构化字段的前6个字节,然后跳过字段中的剩余字节。 这会让我: 0: Start of field byte 1-2: 2-byte length of field 3-5: 3-byte sequence identifying the type of field 所以我检查了字段类型并增加了一个页面计数器(如果它是BPG ,如果不是,我就不会。 然后我跳过字段中的剩余字节而不是通读它们。 在这里,跳过(实际上是字段长度)是我发现Java使用带符号字节的地方。 我做了一些谷歌搜索,发现了很多有用的信息。 当然,最有用的是执行按位& 0xff来获取unsigned int值的指令。 这对我来说是必要的,以获得可用于计算要跳过的字节数的长度。 我现在知道,在128,我们从-128开始向后计数。 我想知道的是按位运算在这里是如何工作的 – 更具体地说,我是如何得到负数的二进制表示。 如果我理解按位&正确,则结果等于只设置两个数字的公共位的数字。 假设byte b = -128 ,我们将: b & 0xff // 128 1000 0000-128 1111 1111 255 ——— […]

int中使用的计数位数

如果您有二进制数10110,我怎么能让它返回5? 例如,一个数字告诉我们使用了多少位? 下面列出了一些类似的例子: 101应该返回3 000000011应该返回2 11100应该返回5 101010101应该返回9 如何在Java中获得最简单的方法? 我已经提出了以下方法,但我可以更快地完成: public static int getBitLength(int value) { if (value == 0) { return 0; } int l = 1; if (value >>> 16 > 0) { value >>= 16; l += 16; } if (value >>> 8 > 0) { value >>= 8; l += 8; } […]

我怎样才能得到位的位置

我有一个十进制数,我需要转换为二进制,然后在二进制表示中找到一个的位置。 输入为5,二进制为101 ,输出应为 1 3 下面是我的代码,它只提供输出为2而不是我想提供一个二进制表示的位置。 如何从1开始获取设置位的位置? public static void main(String args[]) throws Exception { System.out.println(countBits(5)); } private static int countBits(int number) { boolean flag = false; if (number > 1; } return flag ? (32 – result) : result; }

(Java)指定将二进制数转换为字符串时的位数(长度)?

我正在尝试将数字存储为数组中的二进制字符串,但我需要指定存储它的位数。 例如,如果我需要用两位存储0,我需要一个字符串“00”。 或者1010有6位所以“001010”。 有人可以帮忙吗? 编辑:谢谢大家,因为我在数学/编程方面总是很垃圾,所以我选择了大卫的最简单的解决方案。 就像是: binaryString.append(Integer.toBinaryString(binaryNumber)); for(int n=binaryString.length(); n<numberOfBits; n++) { binaryString.insert(0, "0"); } 它看起来工作正常,所以除非效率很低,否则我会选择它。