zoukankan      html  css  js  c++  java
  • test_bit原子操作

    原子位操作

         操作函数的参数是一个指针和一个位号

    原子位操作定义在文件中。令人感到奇怪的是位操作函数是对普通的内存地址进行操作的。原子位操作在多数情况下是对一个字长的内存访问,因而位号该位于0-31之间(在64位机器上是0-63之间),但是对位号的范围没有限制。

    原子操作中的位操作部分函数如下:
    void set_bit(int nr, void *addr)        原子设置addr所指的第nr位
    void clear_bit(int nr, void *addr)      原子的清空所指对象的第nr位
    void change_bit(nr, void *addr)         原子的翻转addr所指的第nr位
    int test_bit(nr, void *addr)            原子的返回addr位所指对象nr位
    int test_and_set_bit(nr, void *addr)    原子设置addr所指对象的第nr位,并返回原先的值
    int test_and_clear_bit(nr, void *addr)  原子清空addr所指对象的第nr位,并返回原先的值
    int test_and_change_bit(nr, void *addr)  原子翻转addr所指对象的第nr位,并返回原先的值

        unsigned long word = 0;

        set_bit(0, &word); /*第0位被设置*/

        set_bit(1, &word); /*第1位被设置*/

        clear_bit(1, &word); /*第1位被清空*/

        change_bit(0, &word); /*翻转第0位*/

  • 相关阅读:
    [BZOJ3195] [Jxoi2012]奇怪的道路
    Splay Tree
    区间DP复习
    Link Cut Tree
    [BZOJ2734] [HNOI2012]集合选数
    如何写出杀手级简历(针对程序员) (转)
    30个提高Web程序执行效率的好经验(转)
    Oracle中的SQL跟踪( 转)
    如何终止SQL Server中的用户进程(转)
    Will the real programmers please stand up?(转)
  • 原文地址:https://www.cnblogs.com/zxc2man/p/14653138.html
Copyright © 2011-2022 走看看