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 谢谢了
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c语言之简单四则运算器
计算器 A(加) S(减法) M(乘) D(除),其他字符退出程序
四则混合运算(简单计算器)C语言实现
给出四则混合运算的详细实现,代码较为全面给出了包括错误检查等各个发面的问题
C语言(12)--简单的10以内四则运算测试器
随机生成10以内四则运算式,由用户输入计算结果,程序判断对错,输入00结束程序。输出总题数和正确题数。
简单C语言计算器 只实现加减乘除运算
本程序对于初学C语言的同学很有帮助,#include "iostream" using namespace std; int main( void ) { double numbera, numberb, result; char operate; try { //输入操作数和运算符 cout<<"请输入第一个操作数:"; cin>>numbera; cout<<"请输入运算符:"; cin>>operate; cout<<"请输入第二个操作数:"; cin>>numberb; //计算结果 switch(operate) { case '+': result = numbera + numberb ; break;
c语言练习 6-1. 简单计算器(20)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。 输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。 输出格式: 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。 输入样例: 1+2*10-10/2=
c语言中中不同类型数据间的混合运算
      在程序中经常会遇到不同类型的数据进行运算,如果一个运算符两侧的数据类型不同,则会先自动进行数据类型转换,使运算符两侧的数据类型相同,然后再进行运算,因此整型、实型、字符型数据间都可以进行混合运算     规律为:       (1)+、-、*、/、运算符两侧中有一个为float或double型,结果都为double型数据。       (2)如果 int型与float型数据进行运算,会...
C语言程序题——简单密码
Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。 密文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码
栈的应用--简单四则运算
思想:我们平时输入的四则运算表达式,例如:9*(3-1)+2,属于中缀表达式。我们需要将它转换成后缀表达式: 9 3 1 - * 2 +的形式求值。其中需要两个栈:数字栈和运算符栈。 过程: 逐个读取中缀表达式(char型):9*(3-1)+2 1.如果是数字则压入数字栈(如果是大于一位的数字则需要写个函数转换成int型) 2.如果是'('则压入运算符栈中 3.如果是'+'或者
产品进销存管理系统(C语言源代码)
产品进销存管理系统(C语言源代码) 产品进销存管理系统 问题描述: 针对某一种行业的库房的产品进销存情况进行管理。 基本要求: ⑴采用一定的存储结构对库房的货品及其数量进行分类管理; ⑵可以进行产品类的添加、产品的添加、产品数量的添加; ⑶能够查询库房每种产品的总量、进货日期、销出数量、销售时间等。
C语言中关于指针的数据类型和指针运算的小结
有关指针的数据类型小结 记忆诀窍: 容易混淆的几个int *p[n] 、int (*p)[n],其中int *p[n]是一个数组,数组的元素是指针;int (*p)[n]是个指针,是一个指向二维数组的指针或者分解为长度为n的一维数组。 2. 指针运算小结 指针变量加(减)一个整数: 如 p++、p--、p+i、p-i 等,指的是将该指针的原值和它指向的变量所占的内