MATLAB函数返回8位十进制数

时间:2015-08-13 15:38:23

标签: matlab function bitwise-operators

我正在尝试编写一些MATLAB代码来返回我提供的十进制数的8位作为输入。返回的8位稍后将在Simulink模型中使用。完成此任务的最佳方法是什么?这是我尝试过的。

gcf = 123;

bitwise_gcf = dec2bin(gcf,8);

gcf_bit1 = bitwise_gcf(0);
gcf_bit2 = bitwise_gcf(1);
gcf_bit3 = bitwise_gcf(2);
gcf_bit4 = bitwise_gcf(3);
gcf_bit5 = bitwise_gcf(4);
gcf_bit6 = bitwise_gcf(5);
gcf_bit7 = bitwise_gcf(6);
gcf_bit8 = bitwise_gcf(7);

1 个答案:

答案 0 :(得分:2)

使用bitgetupr接收数字,矩阵,向量等以及要从输入中的每个数字中提取的位的位置。 (可选)您可以指定假定的数据类型。在您的情况下,这不是可选的。确保指定bitget作为数据类型,因为我假设您需要无符号 8位整数。

对于我们的特定情况,您希望输入为单个数字,并且位数由1到8的向量指定,因为您需要uint8数字的所有位。输出将是一个位数组,其中此数组中的每个位置都为您提供从输入数字中提取的位。

uint8

>> gcf = 123; >> gcf_bits = bitget(gcf, 1:8, 'uint8') gcf_bits = 1 1 0 1 1 1 1 0 将是一个8元素数组,其中每个元素为您提供i th 位,从1开始 - 最低有效位到8 - 最高有效位。

如果您想要相反的顺序,只需反转第二个输入的顺序:

gcf_bits