在matlab中为什么二进制表示法中的第一个数字被丢弃?

cha*_*rvi 0 matlab

当我尝试在第1位位置显示以零开头的二进制表示法时,matlab会丢弃零并仅显示其他7位.我如何显示第一个位置?例如:当我尝试显示"01101111"时,matlab将其显示为"1101111",但我也需要第1位位置值.请有人帮忙.

Ole*_*leg 5

在Matlab中,要显示数字的位表示,您需要将其转换为字符串dec2bin().

所以,如果你有x = 111,它的二进制表示是:

dec2bin(111)
ans =
1101111
Run Code Online (Sandbox Code Playgroud)

它只保留了重要的位数.要强制使用8位表示:

dec2bin(111,8)
ans =
01101111
Run Code Online (Sandbox Code Playgroud)

注意,结果将如何成为一个字符串.如果要以数字格式检索位,请使用bitget():

bitget(111,8:-1:1)
ans =
  0     1     1     0     1     1     1     1
Run Code Online (Sandbox Code Playgroud)

基本上,如果您的需求纯粹是可视化的,dec2bin2()否则使用其他操作位,使用按位操作函数,它接受并返回数字类型.