首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LSB中插入ASCII

在LSB中插入ASCII
EN

Stack Overflow用户
提问于 2013-05-03 12:44:26
回答 2查看 269关注 0票数 0

有谁知道一种有效的方法来将一些字符的ASCII值插入到16位数字的8个最低有效位(LSB)中?

我脑海中唯一的想法是将这两个数字转换成二进制,然后用8位的ASCII值替换最后8个字符,从16位数字开始。但据我所知,字符串操作在计算时间上是非常昂贵的。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 13:31:59

下面是@user1118321 idea的MATLAB实现:

代码语言:javascript
复制
%# 16-bit integer number
x = uint16(30000);

%# character
c = 'a';

%# replace lower 8-bit 
y = bitand(x,hex2dec('FF00'),class(x)) + cast(c-0,class(x))
票数 1
EN

Stack Overflow用户

发布于 2013-05-03 12:52:06

我不知道Matlab的语法,但在C中,它可能是这样的:

代码语言:javascript
复制
short x; // a 16-bit integer in many implementations
... do whatever you need to to x ...
char a = 'a'; // some character
x = (x & 0xFF00) | (short)(a & 0x00FF);

&运算符是算术"and“运算符。|运算符是算术"or“运算符。为了便于阅读,以0x开头的数字是十六进制的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16351725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档