递归火山软件开发平台

标题: std::bitset 比特位集 [打印本页]

作者: 小蜗牛    时间: 2024-3-19 16:51
标题: std::bitset 比特位集
它是C++标准库中的一种容器,专门用来表示一组固定的二进制位序列,其中每个位都可以独立设置为0或1。

<火山程序 类型 = "通常" 版本 = 1 />

类 字节比特 <公开 基础类 = 比特基类 注释 = "相当于[8]个成员的逻辑数组,但是内存占用[1]字节~" @模板实现类 = "字节">

类 短整数比特 <公开 基础类 = 比特基类 注释 = "相当于[16]个成员的逻辑数组,但是内存占用[2]字节~" @模板实现类 = "短整数">

类 整数比特 <公开 基础类 = 比特基类 注释 = "相当于[32]个成员的逻辑数组,但是内存占用[4]字节~" @模板实现类 = "整数">

类 变整数比特 <公开 基础类 = 比特基类 注释 = "相当于[32|64]个成员的逻辑数组,但是内存占用[4|8]字节~" @模板实现类 = "变整数">

类 长整数比特 <公开 基础类 = 比特基类 注释 = "相当于[64]个成员的逻辑数组,但是内存占用[8]字节~" @模板实现类 = "长整数">

类 比特基类 <折叠 @模板基础类 = 真 @别名类型 = 本地类 @别名 = "std::bitset <sizeof(模板类型1)*8>" @视窗.外部头文件 = "<bitset>">
{
    方法 取成员数 <公开 静态 类型 = 整数 注释 = "整数=32" 注释 = "长整数=64" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.size()
    }

    方法 赋值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 值 <类型 = 模板类型1>
    {
        @ @<当前对象> = @<值>
    }

    方法 置值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    参数 值 <类型 = 逻辑型 注释 = "真=1  假=0">
    {
        @ @<当前对象>[@<索引>]=@<值>
    }

    方法 置真 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.set(@<索引>)
    }

    方法 置假 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.reset(@<索引>)
    }

    方法 取值 <公开 静态 类型 = 逻辑型 注释 = "真=1  假=0" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.test(@<索引>)
    }

    方法 是否包含真 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否存在值为 1 的位" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.any()
    }

    方法 是否全部为假 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否所有位都是 0" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.none()
    }

    方法 是否全部为真 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否所有位都是 1" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.all()
    }

    方法 取真数量 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中值为 1 的位的数量" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.count()
    }

    方法 到短整数 <公开 静态 类型 = 短整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ *(@dt<短整数>*)&@<当前对象>
    }

    方法 到整数 <公开 静态 类型 = 整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ (INT)@<当前对象>.to_ulong()
    }

    方法 到长整数 <公开 静态 类型 = 长整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.to_ullong()
    }

    方法 到字节 <公开 静态 类型 = 字节 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ *(byte*)&@<当前对象>
    }

    方法 到数值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 所欲读取值的类型 <注释 = "整数,字节,长整数...等~." 注释 = "输入 模板类型1 的数据类型即可~" @需求类型 = 数据类型 @匹配类型 = 通用非文本基本型 @返回值类型 = 0>
    {
        @ *(@<所欲读取值的类型>*)&@<当前对象>


    }
}



作者: 君安光电科技    时间: 2024-3-20 00:32
不错~
作者: tangtang    时间: 2024-3-20 11:40
模块呢?
作者: 小蜗牛    时间: 2024-3-20 11:46
tangtang 发表于 2024-3-20 11:40
模块呢?

文本不就是吗
作者: aycap    时间: 2024-3-20 11:54
在研究啥新东东
作者: server    时间: 2024-3-20 16:42
小蜗牛 发表于 2024-3-20 11:46
文本不就是吗

小牛牛,把 std::string  也封了呢
作者: 小蜗牛    时间: 2024-3-29 15:06
server 发表于 2024-3-20 16:42
小牛牛,把 std::string  也封了呢

我不会啊..你可以看看PIV模块,里面应该有的
作者: 无止境    时间: 2024-5-1 00:04
怎么用?




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4