位集类型,不超过 64 位 (规范)
如果 self
中的所有位都是 1,则返回 .true.
,否则返回 .false.
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self |
如果 self
中的任何位都是 1,则返回 .true.
,否则返回 .false.
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self |
返回 self
中非零位的数量。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self |
返回 self
中位位置的数量。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_type), | intent(in) | :: | self |
将 self
中 pos
位置的位设置为零。如果 pos
小于零或大于 bits(self)-1
,则忽略它。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | pos |
将 self
中从 start_pos
到 stop_pos
位置的所有位设置为零。如果 stop_pos < start_pos
,则不修改任何位。在 0 到 bits(set)-1
范围之外的位置将被忽略。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | start_pos | |||
integer(kind=bits_kind), | intent(in) | :: | stop_pos |
翻转 self
中 pos
位置的位值,前提是位置有效。如果 pos
小于 0 或大于 bits(self)-1
,则不更改任何值。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | pos |
翻转 self
中从 start_pos
到 stop_pos
位置的所有有效位。如果 stop_pos < start_pos
,则不翻转任何位。小于 0 或大于 bits(self)-1
的位置将被忽略。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | start_pos | |||
integer(kind=bits_kind), | intent(in) | :: | stop_pos |
初始化位集 self
,将 string
视为二进制字面量 status
可能具有以下值:* success
- 如果没有发现问题,* alloc_fault
- 如果位集分配失败 * char_string_too_large_error
- 如果 string
太大,或者 * char_string_invalid_error
- 如果字符串包含无效字符。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(out) | :: | self | |||
character(len=*), | intent(in) | :: | string | |||
integer, | intent(out), | optional | :: | status |
创建位集 self
,大小为 bits
,所有位初始化为零。bits
必须是非负数。如果发生错误且 status
缺失,则处理将以信息性停止代码停止。status
将具有以下值之一:* success
- 如果没有发现问题,* alloc_fault
- 如果内存分配失败 * array_size_invalid_error
- 如果 bits
为负数或大于 64 且 self
的类为 bitset_64
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(out) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | bits | |||
integer, | intent(out), | optional | :: | status |
从非格式化 I/O 单位 unit
中读取位集 self
的组件,假设这些组件使用 output
编写。如果发生错误且 status
缺失,则处理将以信息性停止代码停止。status
具有以下值之一:* success
- 如果没有发现问题 * alloc_fault
- 如果为 self
分配内存失败,或者 * array_size_invalid_error
如果 unit
中的 bits(self)
为负数或大于 64(对于 bitset_64
输入)。* read_failure
- 如果从 unit
读取期间失败
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(out) | :: | self | |||
integer, | intent(in) | :: | unit | |||
integer, | intent(out), | optional | :: | status |
如果 self
中的任何位都没有值为 1,则返回 .true.
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self |
将 self
中的位设置为其逻辑补码。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self |
将位集 self
的组件写入非格式化 I/O 单位 unit
,以与 input
兼容的非格式化序列。如果 status
缺失,则错误将导致错误停止,并显示信息性停止代码。如果 status
存在,则其默认值为 success
,或者如果写入失败,则其值为 write_failure
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
integer, | intent(in) | :: | unit | |||
integer, | intent(out), | optional | :: | status |
使用默认字符 string
中的位集字面量来定义位集 self
。字面量之前可能有一系列任意空白字符。如果 status
缺失,则错误将导致错误停止,并显示信息性停止代码。如果 status
存在,则其具有以下值之一:* success
- 如果没有发生问题,* alloc_fault
- 如果为 SELF 分配内存失败,* array_size_invalid_error - 如果
bits(self)在
string中大于 64(对于
bitset_64),*
char_string_invalid_error- 如果位集字面量包含无效字符,*
char_string_too_small_error - 如果字符串在读取所有位之前结束。* integer_overflow_error
- 如果位集字面量具有大于其表示范围的 bits(self)
值,
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(out) | :: | self | |||
character(len=*), | intent(in) | :: | string | |||
integer, | intent(out), | optional | :: | status |
使用格式化文件(I/O 单位为 unit
)中当前位置的位集字面量来定义位集 self
。字面量之前可能有一系列任意空白字符。如果 advance
存在,则它必须为 'YES' 或 'NO'。如果缺失,则其默认值为 'YES',以确定是否发生 I/O 推进。如果 status
缺失,则错误将导致错误停止,并显示信息性停止代码。如果 status
存在,则其具有以下值之一:* success
- 如果没有发生问题,* alloc_fault
- 如果 self
分配失败,* array_size_invalid_error
- 如果位集字面量中的 bits(self)
大于 64(对于 bitset_64
),* char_string_invalid_error
- 如果读取位集字面量时发现无效字符,* eof_failure
- 如果 read
语句在完成位集字面量读取之前到达文件末尾,* integer_overflow_error
- 如果位集字面量具有大于其表示范围的 bits(self)
值,* read_failure
- 如果 read
语句失败,
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(out) | :: | self | |||
integer, | intent(in) | :: | unit | |||
character(len=*), | intent(in), | optional | :: | advance | ||
integer, | intent(out), | optional | :: | status |
设置 self
中 pos
位置的值,前提是位置有效。如果位置小于 0 或大于 bits(self)-1
,则 self
保持不变。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | pos |
在 self
中将从 start_pos
到 stop_pos
位置的所有有效位设置为 1。如果 stop_pos < start_pos
,则不更改任何位。超出 0 到 bits(self)-1
范围的位置将被忽略。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(inout) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | start_pos | |||
integer(kind=bits_kind), | intent(in) | :: | stop_pos |
如果 pos
位置已设置,则返回 .true.
,否则返回 .false.
。如果 pos
为负数或大于 bits(self)-1
,则结果为 .false.
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | pos |
将 self
的值表示为 string
中的二进制字面量。状态可以具有 success
或 alloc_fault
值。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
character(len=:), | intent(out), | allocatable | :: | string | ||
integer, | intent(out), | optional | :: | status |
如果 pos
位置已设置,则返回 1,否则返回 0。如果 pos
为负数或大于 bits(set)-1
,则结果为 0。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
integer(kind=bits_kind), | intent(in) | :: | pos |
将位集字面量写入可分配的默认字符 string
,表示 bitset_64
中的各个位值,self
。如果 status
缺失,则会导致错误停止,并带有信息性停止代码。如果 status
存在,则其默认值为 success
,如果输出字符串的分配失败,则值为 alloc_fault
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
character(len=:), | intent(out), | allocatable | :: | string | ||
integer, | intent(out), | optional | :: | status |
将位集字面量写入 I/O 单位 unit
,表示位集中各个位的值,self
。默认情况下,或者如果 advance
存在且值为 'YES',则使用前进输出。如果 advance
存在且值为 'NO',则当前记录不会通过写入操作前进。如果 status
缺失,则会导致错误停止,并带有信息性停止代码。如果 status
存在,则其默认值为 success
,如果输出字符串的分配失败,则值为 alloc_fault
,如果 write
语句输出字面量失败,则值为 write_failure
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
class(bitset_64), | intent(in) | :: | self | |||
integer, | intent(in) | :: | unit | |||
character(len=*), | intent(in), | optional | :: | advance | ||
integer, | intent(out), | optional | :: | status |
type, extends(bitset_type) :: bitset_64 !! Version: experimental !! !! Type for bitsets with no more than 64 bits ([Specification](../page/specs/stdlib_bitsets.html#the-stdlib_bitsets-derived-types)) private integer(block_kind), private :: block = 0 contains procedure, pass(self) :: all => all_64 procedure, pass(self) :: any => any_64 procedure, pass(self) :: bit_count => bit_count_64 procedure, pass(self) :: clear_bit => clear_bit_64 procedure, pass(self) :: clear_range => clear_range_64 procedure, pass(self) :: flip_bit => flip_bit_64 procedure, pass(self) :: flip_range => flip_range_64 procedure, pass(self) :: from_string => from_string_64 procedure, pass(self) :: init_zero => init_zero_64 procedure, pass(self) :: input => input_64 procedure, pass(self) :: none => none_64 procedure, pass(self) :: not => not_64 procedure, pass(self) :: output => output_64 procedure, pass(self) :: read_bitset_string => read_bitset_string_64 procedure, pass(self) :: read_bitset_unit => read_bitset_unit_64 procedure, pass(self) :: set_bit => set_bit_64 procedure, pass(self) :: set_range => set_range_64 procedure, pass(self) :: test => test_64 procedure, pass(self) :: to_string => to_string_64 procedure, pass(self) :: value => value_64 procedure, pass(self) :: write_bitset_string => write_bitset_string_64 procedure, pass(self) :: write_bitset_unit => write_bitset_unit_64 end type bitset_64