MATLAB 函数 return 8 位十进制数
MATLAB function to return 8 bits of a decimal number
我正在尝试将一些 MATLAB 代码写入 return 我作为输入提供的十进制数的 8 位。 returned 的 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);
使用bitget
。 bitget
接受一个数字、矩阵、向量等,以及你想从输入中的每个数字中提取的位位置。或者,您可以指定假定的数据类型。在您的情况下,这不是可选的。确保将 uint8
指定为数据类型,因为我假设您需要 unsigned 8 位整数。
对于我们的特定情况,您希望输入是单个数字,并且位位置由从 1 到 8 的向量指定,因为您希望 uint8
的所有位数字。输出将是一个位数组,其中此数组中的每个位置都会为您提供从输入数字中提取的位。
>> gcf = 123;
>> gcf_bits = bitget(gcf, 1:8, 'uint8')
gcf_bits =
1 1 0 1 1 1 1 0
gcf_bits
将是一个 8 元素数组,其中每个元素为您提供第 ith 位,从 1 - 最低有效位到 8 - 最高有效位位.
如果你想要反转顺序,只需反转第二个输入的顺序即可:
>> gcf = 123;
>> gcf_bits = bitget(gcf, 8:-1:1, 'uint8')
gcf_bits =
0 1 1 1 1 0 1 1
我正在尝试将一些 MATLAB 代码写入 return 我作为输入提供的十进制数的 8 位。 returned 的 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);
使用bitget
。 bitget
接受一个数字、矩阵、向量等,以及你想从输入中的每个数字中提取的位位置。或者,您可以指定假定的数据类型。在您的情况下,这不是可选的。确保将 uint8
指定为数据类型,因为我假设您需要 unsigned 8 位整数。
对于我们的特定情况,您希望输入是单个数字,并且位位置由从 1 到 8 的向量指定,因为您希望 uint8
的所有位数字。输出将是一个位数组,其中此数组中的每个位置都会为您提供从输入数字中提取的位。
>> gcf = 123;
>> gcf_bits = bitget(gcf, 1:8, 'uint8')
gcf_bits =
1 1 0 1 1 1 1 0
gcf_bits
将是一个 8 元素数组,其中每个元素为您提供第 ith 位,从 1 - 最低有效位到 8 - 最高有效位位.
如果你想要反转顺序,只需反转第二个输入的顺序即可:
>> gcf = 123;
>> gcf_bits = bitget(gcf, 8:-1:1, 'uint8')
gcf_bits =
0 1 1 1 1 0 1 1