MATLAB 帮助中心
将二进制整数的文本表示转换为双精度值
D = bin2dec(binStr)
D = bin2dec(binStr) 将由 binStr 表示的二进制整数转换为等效的十进制数,并将其以双精度浮点值形式返回。
D
binStr
如果 binStr 表示大于或等于 flintmax 的整数,则 bin2dec 可能不会将其精确表示为浮点值。
flintmax
bin2dec
示例
全部折叠
将表示二进制值的字符向量转换为十进制数。
binStr = '10111'; D = bin2dec(binStr)
D = 23
从 R2019b 开始,您可以直接以二进制格式写入值,而无需使用 bin2dec。使用 0b 前缀,不要使用引号。MATLAB® 将该值存储为整数,而不是文本。
0b
D = 0b10111
D = uint8 23
创建一个表示多个二进制值的字符串数组。
binStr = ["1111111111" "1111010" "1110"]
binStr = 1×3 string "1111111111" "1111010" "1110"
转换二进制值并返回数值数组。
D = 1×3 1023 122 14
从 R2019b 开始,建议您使用二进制字面值创建数值数组,而不是使用 bin2dec 转换文本。
D = [0b1111111111 0b1111010 0b1110]
D = 1×3 uint16 row vector 1023 122 14
表示二进制数字的文本,指定为字符数组、字符向量元胞数组或字符串数组。binStr 使用字符 0 和 1 表示二进制位。
0
1
如果 binStr 是包含多行的字符数组或字符向量元胞数组,则输出为数值列向量。
如果 binStr 是字符串数组,则输出为具有相同维度的数值数组。
由 binStr 表示的二进制数字不能超过 53 位。
从 R2020a 开始,binStr 可以是包含二进制字面值使用的相同前缀(0b 或 0B)和后缀的文本。例如,对 bin2dec 的以下调用都会返回数字 7。
0B
7
bin2dec('111') bin2dec('0b111') bin2dec('0b111s32')
此外,在 R2020a 中,binStr 还可以通过使用指定有符号整数类型的后缀来表示负数的 2 的补码。例如,bin2dec('0b11111111s8') 返回 -1,因为 s8 后缀指定 8 位有符号整数类型。在以前的版本中,binStr 无法表示负数。
bin2dec('0b11111111s8')
-1
s8
全部展开
用法说明和限制:
输入文本必须指定为字符数组或字符串标量。不支持元胞数组。
当输入为空时,答案与 MATLAB® 中的答案不匹配。
输入文本必须指定为字符数组。不支持元胞数组。
当输入为空时,答案与 MATLAB 中的答案不匹配。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
当输入值大于或等于 flintmax 时,bin2dec 函数会发出警告。在以前的版本中,bin2dec 在这种情况下不发出警告。
bin2dec 现在发出警告,因为表示大于或等于 flintmax 的整数的输入可能无法精确表示为双精度浮点值。
要准确转换大于 flintmax 的值,请考虑以下备选方法之一:
使用表示相同值的十六进制或二进制字面值代替标量文本输入。当您将值写为字面值时,MATLAB 会将其存储为精确表示该值的整数。有关详细信息,请参阅十六进制和二进制值。
要转换大于 flintmax 的十六进制输入,您可以将 sscanf 函数与 %lx 运算符结合使用。当您使用 %lx 时,转换后的值是具有 uint64 数据类型的整数。这些整数有足够的存储空间来精确表示大于 flintmax 的值。
sscanf
%lx
uint64
.
dec2bin | hex2dec | base2dec | flintmax
dec2bin
hex2dec
base2dec
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处