当前位置: 首页 > 面试题库 >

以字节为单位设置特定位

华阳秋
2023-03-14
问题内容

我正在尝试在Java字节变量中设置位。它确实提供了类似的适当方法.setBit(i)。有人知道我该怎么实现吗?

我可以逐位遍历给定的字节:

if( (my_byte & (1 << i)) == 0 ){

}

但是我不能将此位置设置为1或0,可以吗?


问题答案:

使用按位 OR|)和 AND&)运算符。要设置一点,即将其pos转到1

my_byte = my_byte | (1 << pos);   // longer version, or
my_byte |= 1 << pos;              // shorthand

取消设置或将其转到0

my_byte = my_byte & ~(1 << pos);  // longer version, or
my_byte &= ~(1 << pos);           // shorthand

有关示例,请参见高级Java
/按位运算符。



 类似资料:
  • 问题内容: 我创建了一个Servlet,它从客户端请求的任何给定字节位置开始返回流(来自MP3文件)。这样,客户端可以在任何给定的字节位置立即开始播放,而无需进行任何本地搜索。 现在,我有一个滑块,可以直观地看到进度。我正在使用当前字节位置来更新滑块。但是,我也想以秒为单位显示当前位置。 这要求服务器可以将以字节为单位的当前位置“转换”为以毫秒为单位的位置。然后,服务器可以只提供以毫秒为单位的流开

  • 问题内容: 我们需要提出一种在int输出中设置4位半字节的方法,如下所示: 这就是我写的 但是有什么错误我无法弄清楚 更新:我已经放下代码以防万一。但基本上答案很明确,上面有很多很棒的答案。 问题答案: 你非常亲密; 实际上,您可以简化代码,但要以区分大小写为代价。实际上,您需要权衡a和shift 。根本没有什么区别,并且代码更清晰,更优雅。 遮罩的想法是完全清除小节将占据结果的相同4个位置。否则

  • 问题内容: 在我的JavaScript代码中,我需要以以下格式编写一条消息到服务器: 例: 数据可能包含unicode字符。我需要将它们作为UTF-8发送。 我正在寻找最跨浏览器的方法来计算JavaScript中字符串的长度(以字节为单位)。 我已经尝试过以此来组成我的有效载荷: 但是对于较旧的浏览器(或者,也许是UTF-16中的那些浏览器中的字符串?),它不能为我提供准确的结果。 有什么线索吗?

  • 问题内容: 如何在Java中的long的特定位置设置/取消设置位? 例如, 我想在位置2设置位,在位置3取消设置位,因此相应的long将是, 有人可以帮我怎么做吗? 问题答案: 要设置一点,请使用: 擦除一下使用: 切换一下用途: 请注意,我使用0b?。您也可以使用任何整数,例如: 但是,这使得更难知道正在更改哪个位。 使用二进制可让您查看将要设置/擦除/切换的确切位。 要动态设置位,请使用: 将

  • 问题内容: 出于好奇,我只是用C,C ++和Java编写了“ Hello Worlds”。 我理解Java类文件只有423B,因为运行时未包含在二进制文件中。 C和C ++分别是8.5K和9.2K。 为什么它们这么大?我一直认为stdio或iostream是动态链接的,并且不会增加可执行文件的大小。 那么,所有千字节来自何处?通过查看hexdump,我发现有很多填充,我想是出于性能原因。为什么确切

  • 问题内容: 说我有XML: 如何在As和C之间插入“ nodeB”?在PHP中,最好通过SimpleXML?喜欢: 问题答案: 以下是在其他一些SimpleXMLElement之后插入新的SimpleXMLElement的函数。由于使用SimpleXML不可能直接做到这一点,因此它在幕后使用了一些DOM类/方法来完成工作。 以及如何使用它的示例(特定于您的问题): 如果您想/需要解释它是 如何 工