golang 实现bitmap


本文摘自网络,作者,侵删。

type bitmap struct {

    keys []byte

    len int

}

func NewBitMap() *bitmap {

    return &bitmap{keys:make([]byte, 0), len:0}

}

func (b *bitmap)has(v int) bool {

    k := v /8

   kv :=byte(v %8)

    if k >len(b.keys) { //todo not exist

          return false

      }

    if b.keys[k]&(1<<kv) != 0 {

        return true

    }

    return false

}

func (b *bitmap)set(v int) {

    k := v /8

    kv :=byte(v %8)

    for b.len <= k {

        b.keys =append(b.keys, 0)

        b.len++

    }

    b.keys[k] =b.keys[k] | (1 << kv)

}

func (b *bitmap)length()int {

    return b.len

}

func (b *bitmap)print() {

    for _, v :=range b.keys {

        fmt.Printf("%08b\n", v)

    }

}


本文来自:简书

感谢作者:GoSnail

查看原文:golang 实现bitmap

相关阅读 >>

leetcode1047 删除字符串中的所有相邻重复项 Golang

Go语言(Golang)环境配置安装包下载安装教程

Golang是面向对象吗?

详解Golang中函数作为值与类型

手撸Golang 基本数据结构与算法 快速排序

使用 Google/wire 对 Go 项目进行依赖注入

Golang中线程和协程的区别是什么

Golang grpc无法安装原因

手撸Golang Go与微服务 saga模式之7

一文读懂云原生 Go-zero 微服务框架

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...