首页 > TAG信息列表 > bit-manipulation

对这些类型的字节级操作进行Java编码的最佳方法是什么?

我正在阅读有关优化方法的一些问题. 在如何在特定范围内对数字进行排序的问题中,解决方案是使用位图.如果数字可以出现例如最多使用10次使用半字节来映射数字,并用作表示发生次数的计数器.我很了解这个概念.我的问题是如何以简单的方式在Java中实现这一点. 我被限制在位操作上.例如

c#-将所有低序位设置为0,直到剩下两个1(用于存储为字节数组的数字)

我需要将给定BigInteger的所有低位设置为0,直到只剩下两个1位为止.换句话说,将最高位和第二高位置1,同时不设置所有其他位. 该数字可以是位的任何组合.甚至可能全为1或全为0.例: MSB 0000 0000 1101 1010 0010 0111 ... ... ... LSB 0100

C#中的双按位NOT(~~)

我一直在阅读ThreadLocal< T>实现,并且不太了解将int id转换为私有ind字段(m_idComplement)之前将int id反转,然后在几乎所使用的每个表达式中再次将其反转的原理.除了适用于JavaScript的this case,我不能找到任何有关为什么在C#中使用双重取反的信息? 在第240行,它确实分配了0,而没

Android在上传到服务器之前减小图像大小

我必须将从相机/画廊捕获的图像上传到服务器.在许多应用程序中,我看到分辨率为1000X560的图像大小为35 KB.以我为例,图像大小最大为380 KB.我的手机的相机拍摄的分辨率为2368X4224的图像尺寸小于< 2 MB.如何在保持较小尺寸的情况下获得高分辨率图像?到目前为止,这是我尝试过的: Bit

Android在上传到服务器之前减小图像大小

我必须将从相机/画廊捕获的图像上传到服务器.在许多应用程序中,我看到分辨率为1000X560的图像大小为35 KB.以我为例,图像大小最大为380 KB.我的手机的相机拍摄的分辨率为2368X4224的图像尺寸小于< 2 MB.如何在保持较小尺寸的情况下获得高分辨率图像?到目前为止,这是我尝试过的: Bit

在JavaScript中创建宽度可变的位掩码(0-32位)

我正在寻找一种在JavaScript中生成宽度从0到32位不等的位掩码的方法.这必须适用于从0到32的所有宽度,以便: > bitmask(0)应该以二进制(十进制0)返回0; > bitmask(2)应该以二进制(十进制3)返回11;> bitmask(5)应该以二进制(十进制31)返回11111;> bitmask(32)应该以二进制(十进制42949672

java-累积按位运算

假设您有一个数组A = [x,y,z,…] 然后,您计算一个前缀/累积的BITWISE-OR数组P = [x,x | y,x | y | z,…] 如果我想找到索引1和索引6之间的元素的BITWISE-OR,如何使用此预先计算的P数组来做到这一点?可能吗? 我知道它可以累积总和来获得一定范围内的总和,但是我不确定使用位运算. 编辑

c#-换位表示为ulong值的4×4矩阵(尽可能快)

为了实现强化学习,我一直在研究2048的C#实现. 每次移动的“滑动”操作都需要根据特定规则移动并组合磁贴.这样做涉及到二维值数组上的许多转换. 直到最近,我还使用4×4字节矩阵: var field = new byte[4,4]; 每个值都是2的指数,因此0 = 0、1 = 2、2 = 4、3 = 8,依此类推. 2048磁贴

php-如何对这些base64’d数字进行XOR?

我有5个二进制字符串base64_encode() wAD4Af8B/gHuA/4BzgP1A/8P/h//f/xv+z30D9IDSAE= AAAgCPgf/B/4H/w1+B74Gfg/+B/8P/4f/D/8HwABAAA= AAAAAMB/wP/A/8B/4HvAf+B/+n/3P/Y//z/4n4CDgAE= AAAAXcB/wH/Af8B/wHfAP+B/6H/xf+7//r/4f0CngFY= AAiwifAP+B/4D/gf8B74D/gd8V/4H/gP8B/8vwAB

首页>Python>如果您只是在操纵二进制值序列,您会使用numpy吗?

当您对二进制值列表进行大量操作时,使用numpy有什么好处吗?小范围内的整数(例如数字1,2和3)如何?解决方法:消除循环是提高性能(10倍)的源泉: import profile import numpy as NP def np_test(a2darray) : row_sums = NP.sum(a2darray, axis=1) return NP.sum(row_sums) def std

按位运算符不会从JavaScript转换为PHP

我正在尝试转换这段代码,该代码段在循环中使用从JavaScript到PHP的按位运算符.这是JavaScript代码: for( var k = 0, iTop = str.length; k < iTop; k++ ) { crc = (crc >> 8) ^ ("0x" + table.substr(((crc ^ str.charCodeAt(k) ) & 0x000000FF) * 9, 8)); document.write

将C移植到Python的惯用方式

您将如何以Python方式移植以下C代码(尤其是Get2,Get3等的摆弄部分) switch(mem[pos-1]) { ... case 0x10: pos+=Get2(&mem[pos+0x02])+0x04; break; case 0x11: pos+=Get3(&mem[pos+0x0F])+0x12; break; case 0x16: pos+=Get4(&mem[pos+0x00])+0x04; break; ... case

CodeGo.net>如何填充一个BitArray,以便将其复制到一个字节将工作

请考虑将斜杠符号(例如24、30)转换为子网掩码的此(非家庭作业)练习. 当我将BitArray复制到byte []时,BitArray的内部排序会导致输出错误. 例如,使用numberOfSetBits = 24输入,ToString()应该返回255.255.255.0(这是可行的,因为位是对称的). 但是,输入30会得到255.255.255.63,而不是

验证大整数的二进制模式(BigInteger)

我想测试一个正整数,以查看其二进制表示形式是否以零或多个1开头,然后是一个或多个0开头. 00000000 // Valid 10000000 // Valid 11000000 // Valid 11100000 // Valid 11110000 // Valid 11111100 // Valid 11111110 // Valid 11111110 // Valid 11111111 // Not Valid // Any ot

php按位标记检测操作

//嗨,我想排除按位运算的标志,但是我不知道怎么做: //这是标志(它们来自filesystemiterator) define('CURRENT_AS_FILEINFO', 0); define('CURRENT_AS_SELF', 16); define('CURRENT_AS_PATHNAME', 32); define('CURRENT_MODE_MASK', 240); define('KEY_AS_P

c-在位数组中找到第一个零

我有位图 uint64_t bitmap[10000] 跟踪系统中分配的资源. 现在的问题是,如何有效地找到此位图中的第一个未设置(零)位? 我知道glibc中有ffsll(unsigned long long)用于查找第一个设置位,我假设它使用硬件指令来完成. 要在我的情况下使用此功能,首先我需要初始化数组以将每个位设

在Java中获取int的特定位子集

我将如何获取Java中int的特定子集(例如5-10位)? 寻找一种可以传递特定位位置的方法.我不确定如何创建一个根据输入改变的遮罩,或者即使那是应该怎么做的遮罩. 我知道这就是让前台说出一个int的10位的方式:(我认为) int x = num>> 22;解决方法:假设您有一个数字n,并希望位从i到j(i = 5

C#-编写通用方法来处理位操作

我正在开发一种必须符合规范的工具,该规范具有大量将数据打包到跨字节边界的位中的功能.示例:2个字节编码2个字段,10位值,6位容限.其他字段可能会跨越2-4个字节,并分成更多字段. 我发现不是替代C#并尝试获取具有Bitfields的Structs(如C一样),而是想到了另一种选择,即在发送/接收数据

python中的字节到位操作

我有在Python程序中读取的bmp文件.读完字节后,我想对读入的每个字节进行按位操作.我的程序是: with open("ship.bmp", "rb") as f: byte = f.read(1) while byte != b"": # Do stuff with byte. byte = f.read(1) print(byte) 输出: b'\xfe'

java-为什么-9&0xaaaa得到未签名的结果?

convertToBinary方法用于显示8位二进制数, public static String convertToBinary(int a){ String binary=""; for(int i=0;i<8;++i){ Integer bit=new Integer(a&1); binary=bit.toString()+binary; a>>=1; } return b

为什么不能在python中对字节对象进行异或运算?

我想我了解python字节对象,但是在字节字符串上支持按位操作似乎是一个显而易见的功能.我不明白为什么不支持它. >>>'abcdefg'.encode('ascii') b'abcdefg' 好的.我从字符串变成了类似ascii中字符串的字节表示形式. 所以当我尝试: >>> a = 'abcdefg'.encode('ascii') >>> a

使用Python翻转数组中的位

您将获得一个包含N个元素的整数数组:d [0],d [1],… d [N-1]. 您可以对数组执行AT MOST动作:选择任意两个整数[L,R],并翻转第L和R位之间的所有元素. L和R代表位的最左和最右索引,这些位标记了您决定翻转的段的边界. 在最终的位串中可以获取的最大1位位数(用S表示)是多少? “翻转”表示

C#从第一个有效位开始获取uint32的高4位

我需要-有一些(实际上是伪的)uint32随机数,我需要它是4个第一位以1st位表示,而不是0,例如 …000100101 => 1001 1000…0001 => 1000 …0001 => 0001 …0000 => 0000 等等 我知道我必须使用这样的东西 uint num = 1157 (some random number) uint high = num >> offset 问题是-

java-处理代表位域的字节数组中的位的有效方法

因此,我有一个代表位域的字节数组.字节数组的任何索引处的位1表示我有对应的块,反之亦然,即为0.现在,每当我有对应的块时,都需要将0的位值更改为1. 我的问题是,如果将字节数组转换为int数组然后更改数组索引的相应值会更好,还是在字节数组中执行起来更简单? 如果是前者,如何将字节数

javascript-使用按位与1

如果x是浮点数,则执行 y = x & 1 除了检查x是否为奇数之外,还有其他目的吗? 我刚刚读了Using bitwise OR 0 to floor a number,想知道,还有其他有趣的按位操作吗?解决方法:如果x在逻辑上是浮点数(在测试之前不打算是整数值),则& 1的确切目的是:确定x的截断值是否为奇数(这是截断和按