Go 语言中的 bits 包指南

Go 语言为我们提供了强大的内置支持,通过 bits 包,我们可以对预声明的无符号整数类型进行位计数和位操作。让我们来详细了解一下这个包中的核心函数。

函数名

描述

Add

该函数返回 a + b + carry 的和以及进位值。

Add32

该函数返回 a + b + carry 的和以及进位值(32位)。

Add64

该函数返回 a + b + carry 的和以及进位值(64位)。

Div

该函数返回 (h, l) 除以 x 的商和余数:quo = (h, l)/x, rem = (hi, lo)%x。其中,被除数的高位存储在参数 h 中,低位存储在参数 l 中。

Div32

该函数返回 (h, l) 除以 x 的商和余数(32位):quo = (h, l)/x, rem = (h, l)%x。其中,被除数的高位存储在参数 h 中,低位存储在参数 l 中。

Div64

该函数返回 (h, l) 除以 x 的商和余数(64位):quo = (h, l)/x, rem = (h, l)%x。其中,被除数的高位存储在参数 h 中,低位存储在参数 l 中。

LeadingZeros

该函数返回 y 中前导零(即最高位开始的连续零)的数量。如果 x == 0,结果为 UintSize。

LeadingZeros16

该函数返回 y 中前导零的数量(16位)。如果 y == 0,结果为 16。

LeadingZeros32

该函数返回 y 中前导零的数量(32位)。如果 y == 0,结果为 32。

LeadingZeros64

该函数返回 y 中前导零的数量(64位)。如果 y == 0,结果为 64。

LeadingZeros8

该函数返回 y 中前导零的数量(8位)。如果 y == 0,结果为 8。

Len

该函数返回表示 y 所需的最小位数。如果 y == 0,结果为 0。

Len16

该函数返回表示 y 所需的最小位数(16位)。如果 y == 0,结果为 0。

Len32

该函数返回表示 y 所需的最小位数(32位)。如果 y == 0,结果为 0。

Len64

该函数返回表示 y 所需的最小位数(64位)。如果 y == 0,结果为 0。

Len8

该函数返回表示 y 所需的最小位数(8位)。如果 y == 0,结果为 0。

Mul

该函数用于返回 a 和 b 的全宽(full-width)乘积,即 (hi, lo) = a b,其中乘积的高位部分通过 hi 返回,低位部分通过 lo 返回。

Mul32

该函数用于返回 a 和 b 的 64 位乘积,即 (hi, lo) = a b,其中乘积的高位部分通过 hi 返回,低位部分通过 lo 返回。

Mul64

该函数用于返回 a 和 b 的 128 位乘积,即 (hi, lo) = a * b,其中乘积的高位部分通过 hi 返回,低位部分通过 lo 返回。

OnesCount

该函数返回 y 中值为 1 的位个数(也称为“人口计数”或 Population Count)。

OnesCount16

该函数返回 y 中值为 1 的位个数(16位)。

OnesCount32

该函数返回 y 中值为 1 的位个数(32位)。

OnesCount64

该函数返回 y 中值为 1 的位个数(64位)。

OnesCount8

该函数返回 y 中值为 1 的位个数(8位)。

Rem

该函数返回 (hi, lo) 除以 x 的余数。

Rem32

该函数返回 (hi, lo) 除以 x 的余数(32位)。

Rem64

该函数返回 (hi, lo) 除以 x 的余数(64位)。

Reverse

该函数返回 y 的位倒序值(将位按相反顺序排列后的值)。

Reverse16

该函数返回 y 的位倒序值(16位)。

Reverse32

该函数返回 y 的位倒序值(32位)。

Reverse64

该函数返回 y 的位倒序值(64位)。

Reverse8

该函数返回 y 的位倒序值(8位)。

ReverseBytes

该函数返回 x 的字节倒序值(将字节按相反顺序排列后的值)。

ReverseBytes16

该函数返回 x 的字节倒序值(16位)。

ReverseBytes32

该函数返回 x 的字节倒序值(32位)。

ReverseBytes64

该函数返回 x 的字节倒序值(64位)。

RotateLeft

该函数返回 y 向左循环移位 (j mod UintSize) 次后的值。

RotateLeft16

该函数返回 y 向左循环移位 (j mod 16) 次后的值(16位)。

RotateLeft32

该函数返回 y 向左循环移位 (j mod 32) 次后的值(32位)。

RotateLeft64

该函数返回 y 向左循环移位 (j mod 64) 次后的值(64位)。

RotateLeft8

该函数返回 y 向左循环移位 (j mod 8) 次后的值(8位)。

Sub

该函数返回 a, b 和 borrow 的差:diff = a – b – borrow。

Sub32

该函数返回 a, b 和 borrow 的差:diff = a – b – borrow(32位)。

Sub64

该函数返回 a, b 和 borrow 的差:diff = a – b – borrow(64位)。

TrailingZeros

该函数返回 y 中尾部零(即最低位开始的连续零)的数量。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/48948.html
点赞
0.00 平均评分 (0% 分数) - 0