bitset
设置指定位置的位
语法
说明
假定 intout
= bitset(A
,bit
,assumedtype
)A
的类型为 assumedtype
。
示例
将位设置为“打开”
将 2 的幂与某个数字相加。
A = 4; intout = bitset(A,4:6)
intout = 1×3
12 20 36
您可以看到,bitset
按顺序打开位 4 至 6。
c = dec2bin(intout)
c = 3x6 char array
'001100'
'010100'
'100100'
超出整数类型范围
如果指定超出 assumedtype
范围的整数,MATLAB® 会引发错误。例如,bitset(300,5,'int8')
将返回错误,因为 int8
整数的最大值为 127。
通过将输入限制在指定数据类型的范围内可以避免此错误。
intout = bitset(75,5,'int8')
intout = 91
将位设置为“关闭”
用某个数字反复减去 2 的幂。
a = intmax('uint8')
a = uint8
255
for k = 0:7 a = bitset(a, 8-k, 0); b(1,k+1) = a; end b
b = 1x8 uint8 row vector
127 63 31 15 7 3 1 0
设置多个位
将多个位设置为不同值
bits = 2:6;
val = [1 0 0 1 1];
intout = bitset(0,bits,val,'int8')
intout = 1×5
2 0 0 16 32
输入参数
A
— 输入值
数组
输入值,指定为数组。A
、bit
和 V
每个都可以是标量或大小相同的数组。
如果
A
为双精度数组,并且未指定assumedtype
,则 MATLAB® 会将A
视为无符号的 64 位整数。如果已指定
assumedtype
,A
中的所有元素必须是assumedtype
类型范围内的整数值。
数据类型: double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
bit
— 位的位置
整数 | 整数数组
位的位置,指定为整数或整数数组。A
、bit
和 V
每个都可以是标量或大小相同的数组。bit
的值必须介于 1(最低有效位)和 A
的整数类中的位数之间。
数据类型: double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
assumedtype
— 假定的 A
的数据类型
'uint64'
| 'uint32'
| 'uint16'
| 'uint8'
| 'int64'
| 'int32'
| 'int16'
| 'int8'
假定的 A
的数据类型,指定为 'uint64'
、'uint32'
、'uint16'
、'uint8'
、'int64'
、'int32'
、'int16'
或 'int8'
。
如果
A
是双精度数组,assumedtype
可以指定任何有效的整数类型,但默认为'uint64'
。如果
A
是整数类型数组,assumedtype
必须指定相同的整数类型。
数据类型: char
| string
V
— 位值
标量 | 数值数组
位的值,指定为标量或数值数组。A
、bit
和 V
每个都可以是标量或大小相同的数组。
数据类型: double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
输出参量
intout
— 调整后的整数
数组
调整后的整数,以数组形式返回。intout
的数据类型与 A
相同。
如果
A
、bit
和V
都是标量,则intout
也是标量。如果
A
、bit
或V
中的任何一个为数组,则intout
的大小与该数组相同。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
输入值
A
和位的位置bit
中有至少一个必须为整数数据类型。不支持
assumedtype
参量。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)