How do I convert a string into its binary equivalent?

8 visualizaciones (últimos 30 días)
I want to convert 2 strings (user_id & password) in binary equivalent and then concatenate these binary string. So that later i can get back both string separately. Both strings are 20 character long each. If less than 20 character then '*' will be appended to the strings.
I wrote this. But it does not work. Please tell me how it can be done?
user_id = 'banerjee.raktim';
password = '123456789';
len_id = length(user_id);
len_pwd = length(password);
if len_id < 20
x = 20 - len_id;
for i = 1:x,
user_id = [ user_id '*'];
end
end
if len_pwd < 20
x = 20 - len_pwd;
for i = 1:x,
password = [password '*'];
end
end
user_id = double(user_id);
user_id = dec2bin(user_id);
save user_id;
password = double(password);
password = dec2bin(password);
save password;
user_id_final = '0';
password_final = '0';
for i = 1:20,
t = user_id(i,:);
len_t = length(t);
diff = 8 - len_t;
for j = 1:diff,
t = ['0' t];
end
user_id_final = [user_id_final t];
end
save user_id_final;
for i = 1:20,
t = password(i,:);
len_t = length(t);
diff = 8 - len_t;
for j = 1:diff,
t = ['0' t];
end
password_final = [password_final t];
end
user_id_final(1) = [];
password_final(1) = [];
watermark= [user_id_final password_final];
save watermark;

Respuesta aceptada

Walter Roberson
Walter Roberson el 24 de En. de 2011
user_id = 'banerjee.raktim';
password = '123456789';
user_id = [user_id repmat('*',1,20)];
user_id = user_id(1:20);
password = [password repmat('*',1,20)];
password = password(1:20);
userid_final = reshape(dec2bin(user_id,8),1,[]);
password_final = reshape(dec2bin(password,8),1,[]);
watermark = [userid_final password_final];
  3 comentarios
Walter Roberson
Walter Roberson el 25 de En. de 2011
You will have to reshape() the watermark before you bin2dec it.
Also, I just noticed a correction to make my code match yours:
userid_final = reshape(dec2bin(user_id,8).',1,[]);
password_final = reshape(dec2bin(password,8).',1,[]);
Each of the dec2bin would produce a 20x8 bit matrix, and the original reshape would have flattened that along the *columns*, whereas your code had them flattened along the *rows. The .' (transpose) that I show in this comment will cause my version to be flattened along the rows like yours was.
The implication is that you should
char(bin2dec(reshape(watermark, 8, []).'))
raktim banerjee
raktim banerjee el 25 de En. de 2011
Thank you Sir a lot!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by