bits

package
v0.3.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2024 License: MIT, Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Float64ToInt64

func Float64ToInt64(f float64) int64

func Float64ToUint64

func Float64ToUint64(f float64) uint64

func FromBytes

func FromBytes[T constraints.Number](bytes []byte) T

func Int64ToFloat64

func Int64ToFloat64(f int64) float64

func Int64ToUint64

func Int64ToUint64(f int64) uint64

func ToBytes

func ToBytes[T constraints.Number](t T) []byte

func Uint64ToFloat64

func Uint64ToFloat64(f uint64) float64

func Uint64ToInt64

func Uint64ToInt64(f uint64) int64

func ViewBin

func ViewBin(v any)

Sizeof函数返回的大小只包括数据结构中固定的部分,例如字符串对应结构体中的指针和字符串长度部分,但是并不包含指针指向的字符串的内容。Go语言中非聚合类型通常有一个固定的大小,尽管在不同工具链下生成的实际大小可能会有所不同。考虑到可移植性,引用类型或包含引用类型的大小在32位平台上是4个字节,在64位平台上是8个字节。

计算机在加载和保存数据时,如果内存地址合理地对齐的将会更有效率。例如2字节大小的int16类型的变量地址应该是偶数,一个4字节大小的rune类型变量的地址应该是4的倍数,一个8字节大小的float64、uint64或64-bit指针类型变量的地址应该是8字节对齐的。但是对于再大的地址对齐倍数则是不需要的,即使是complex128等较大的数据类型最多也只是8字节对齐。

由于地址对齐这个因素,一个聚合类型(结构体或数组)的大小至少是所有字段或元素大小的总和,或者更大因为可能存在内存空洞。 1字节(byte)=8位(bit) 在16位系统中,1字(word)=2字节(byte)=16位(bit) 在32位系统中,1字(word)=4字节(byte)=32位(bit) 在64位系统中,1字(word)=8字节(byte)=64位(bit)

Types

type Num64

type Num64 uint64
const (
	BaseNaN Num64 = 0x7FF8000000000001
)

func Float64ToNum64

func Float64ToNum64(f float64) Num64

func Int64ToNum64

func Int64ToNum64(f uint64) Num64

func Uint64ToNum64

func Uint64ToNum64(f int64) Num64

func (Num64) At

func (b Num64) At(leftIdx int) bool

func (Num64) Float

func (b Num64) Float() float64

func (Num64) Int

func (b Num64) Int() int64

func (Num64) Num8 added in v0.3.3

func (b Num64) Num8(leftIdx int) bool

func (Num64) RangeInt

func (b Num64) RangeInt(leftIdx, rightIdx int) int64

func (Num64) RangeUint

func (b Num64) RangeUint(leftIdx, rightIdx int) uint64

func (Num64) SetAt

func (b Num64) SetAt(leftIdx int, v bool) Num64

func (Num64) SetRange

func (b Num64) SetRange(l, r int, v bool) Num64

func (Num64) Uint

func (b Num64) Uint() uint64

type Uint8 added in v0.3.3

type Uint8 uint8

func (Uint8) SetAt added in v0.3.3

func (b Uint8) SetAt(leftIdx int, v bool) Num64

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL