在MATLAB中包含sprintf中的尾随空格

时间:2017-04-12 13:58:30

标签: matlab des

我试图在Matlab中实现DES密码。 为了获得纯文本和密钥的位,我这样做:

binInput = hex2bin(sprintf('%x',input));

hex2bin是教授给我们的功能 这给了我输入的十六进制,然后它的二进制为char数组。

我注意到当input有一个尾随空格时,它会被忽略,因此我的算法停止工作,因为该块不再是64位长(我得到一个1x15字符向量而不是例如1x16

我怎样才能包含这个尾随空格?我在网上或help sprintf找不到任何内容。

提前致谢

1 个答案:

答案 0 :(得分:0)

sprintf 确实尊重所有空白,无论它是尾随,领先还是中间。

sprintf('%x', 'hello')
%   68656c6c6f

sprintf('%x', 'hello ')
%   68656c6c6f20

如果您需要输入长度为64位的倍数,则可能需要使用空字节填充数据

str((end+1):(end+mod(numel(str), 8))) = '0';

如果有任何内容被截断,那么教授给你的hex2bin函数可能会出现问题。