0 0

BitSet類中的源代碼,有幾行看不懂0




如圖,這個是BitSet類中的幾行代碼,我看了一天看不懂...

疑惑的地方是:
((toIndex-1) & BIT_INDEX_MASK) < (fromIndex & BIT_INDEX_MASK)

這句是要判斷最後一次複製的內容,是跨越源對象兩個word還是只在一個word中,所以應該這樣寫才對啊,((toIndex-1) & BIT_INDEX_MASK)<(fromIndex & -BIT_INDEX_MASK),也就是判斷上一步copy之後,剩下來的部份,是否能夠完全滿足toIndex的需要,如果不能滿足,則是跨越兩個word的情況.

還有一點,set(int from,int to)這個方法的臨界點是包括from,不包括to的,那麼在這個方法的代碼中,"不包括to"是如何體現的
2013年2月20日 16:36
  • 大小: 44.8 KB
目前还没有答案

相关推荐

    动态Bitset源代码

    在C++的STL中实现由一个bitset类模板,其用法如下: std::bitset&lt;64&gt; bs; 也就是说,这个bs只能支持64位以内的位存储和操作;bs一旦定义就不能动态增长了。本资源附件中实现了一个动态Bitset,和标准bitset兼容。 /*...

    C标准库源代码(学习C/C++必备)

    C标准库源代码\BITSET C标准库源代码\BLDNT.CMD C标准库源代码\BLDWIN95.BAT C标准库源代码\BSEARCH.C C标准库源代码\CALLOC.C C标准库源代码\CASSERT C标准库源代码\CCTYPE C标准库源代码\CENVARG.C C标准库源代码\...

    bitset用法 bitset用法

    在C++编程语言中,`bitset`是一个非常有用的类模板,它可以帮助程序员高效地处理二进制数据。`bitset`的主要功能是存储位序列,并提供了丰富的成员函数来对这些位进行操作。下面我们将详细介绍`bitset`的用法。 ###...

    C语言头文件 BITSET

    C语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC...

    HEX2BIN VC 源代码

    3. **源代码实现**:在C++中,我们可以使用标准库函数如`std::stringstream`、`std::hex`和`std::bitset`来完成转换。首先,将HEX字符串读入,然后逐字符处理,使用`std::hex`将字符转换为对应的整数值,再用`std::...

    【STL源代码】C++标准库STL源代码下载

    在【STL源代码】中,我们可以深入学习并理解这些组件的实现细节,从而提高编程技能和效率。 1. 容器: - `vector`:动态数组,提供了类似数组的功能,可以在任何位置进行插入和删除元素,自动管理内存。 - `list`...

    java 原生包 BitSet 源码

    9. 在没有外部同步的情况下,BitSet不适合多线程使用。 BitSet的实现原理是将位存储在一个long[]数组中,数组中的每个元素(word)包含了64位。由于64位正好是2的6次方,因此通过一个字的地址可以寻址到每个字的特...

    浅谈Java BitSet使用场景和代码示例

    Java BitSet 使用场景和代码示例 Java BitSet 是 Java 中的一个重要类,它实现了一个按需增长的位向量。BitSet 的每一个组件都有一个 boolean 值,用非负的整数将 BitSet 的位编入索引。可以对每个编入索引的位进行...

    c++ bitset实现

    7. **静态和动态大小**:标准库的`std::bitset`有固定的大小,但在自定义实现中,可以设计为支持动态调整大小。 8. **性能优化**:自定义`bitset`可能包含一些针对特定场景的优化,比如位操作的流水线处理,或者...

    对java的BitSet的多线程并发的探索

    在多线程并发环境中,对BitSet的操作需要特别注意,因为位操作本身是原子性的,但BitSet的大部分方法并不是线程安全的。这篇博文主要探讨了如何在多线程环境下正确地使用Java的BitSet。 首先,我们要理解BitSet的...

    stl源码剖析源代码-免费

    通过阅读这些源代码,开发者可以深入理解STL内部的实现细节,比如迭代器的工作方式、容器的内存管理策略以及算法的效率优化。这对于提升C++编程技巧,特别是进行高性能、低级别的内存管理和优化时,是极其宝贵的资源...

    可以动态扩展的bitset

    文档模仿STL库的BITSET写的一个bitset,但是和STL不同的是这个类是一个可以动态扩展的,使用方法和STL的类似,可以参考STL使用

    Go-bitset-Go包实现bitsets

    在Go编程语言中,`bitset`是一个非常实用的包,用于高效地处理位集(也称为位向量或位数组)。位集是一种特殊的数据结构,它使用二进制位来表示一系列布尔值,通常用于存储有限集合的成员资格。Go的`bitset`包实现了...

    源代码_背包问题--01背包_

    在标题“源代码_背包问题--01背包_”中,"01背包"指的是每个物品只能被完全放入或完全不放入背包,即不能分割。这种问题的难点在于如何有效地处理物品的选择,以达到最佳效果。 描述中提到的"这里的bitset优化的...

    C++下bitset简介

    C++中的`bitset`是一个非常实用的容器,它允许我们以数组的形式操作位,从而方便地处理位级别的逻辑运算。`bitset`是C++标准库的一部分,属于STL(Standard Template Library),它提供了高效且易用的方法来管理一组...

    BitSet 源码分析.txt

    基于JDK1.8的BitSet 源码分析, 描述了实现的原理 个方法的含义 虽然没有写出实际的测试代码 但是只要是细度了我的这个分析 在使用的时候就不是问题了

    Hex2bin 源代码

    了解并掌握Hex2bin的源代码,不仅可以帮助我们更好地理解和处理二进制数据,还能提高我们在实际项目中的编程效率。通过研究和理解"Hex2bin源代码 VC++ 无64K限制",我们可以学习到如何优化内存管理,提高程序的性能...

    java实现CMPP3.0源代码

    Java实现CMPP3.0源代码是用于与短信网关进行通信的一种技术实践,主要针对中国移动的CMPP(China Mobile Packet Protocol)3.0版本。...同时,由于源代码有部分注释,这对于理解和学习代码结构及功能有很大帮助。

Global site tag (gtag.js) - Google Analytics