2 huoxp0209 huoxp0209 于 2014.02.14 10:17 提问

C语言有没有一种简单的运算进行字节扩展?

在C语言中有没有一种简单的办法扩展字节?
比如 8位的10101010 扩展为16位1100110011001100应该如何实现?

2个回答

qq352773277
qq352773277   2014.02.14 11:05

char *itoa(int value, char *string, int radix);
我记得这个函数可以

u010082208
u010082208   2014.05.22 04:59

这是要定义一个“函数”,输入是清楚的:一个字节,即unsigned char类型;

  1. 输出是什么?一个双字节整数(unsigned short)?
  2. 映射规则是什么? ——只有一个例子(10101010)->(1100110011001100)有点不够,无从揣摩。多举几个例子吧……

猜测1:

unsigned short some_func(unsigned char c)
{
    unsigned short r = 0;
    for (int i=0; i<8; ++i)
    {
        r |= (0x80 & c);
        r<<=1;
        r |= (0x80 & c);
        c<<=1;
    }
    return r;
}
huoxp0209
huoxp0209 谢谢了
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!