永发信息网

有没有C程序大神能帮我把这段C++代码翻译成C语言的,感激不尽!!!

答案:4  悬赏:30  手机版
解决时间 2021-03-16 22:52
#include // 用于文件操作
#include // 用于程序流程控制

void checkCRC(int &chCurrByte, int chNextByte)

{
// CRC循环:每次调用进行8次循环,处理一个字节的数据。
for (int nMask = 0x80; nMask > 0; nMask >>= 1)
{
if ((chCurrByte & 0x80) != 0) // 首位为1:移位,并进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
chCurrByte ^= 7; // 首位已经移出,仅对低8位进行异或运算,7的二进制为0000,0111
}
else // 首位为0,只移位,不进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
}
}
}
最佳答案
由于C中没有引用 所以计算得到的值必须通过返回值传回 调用上也就会有区别
int checkCRC(int chCurrByte, int chNextByte)

{
// CRC循环:每次调用进行8次循环,处理一个字节的数据。
for (int nMask = 0x80; nMask > 0; nMask >>= 1)
{
if ((chCurrByte & 0x80) != 0) // 首位为1:移位,并进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
chCurrByte ^= 7; // 首位已经移出,仅对低8位进行异或运算,7的二进制为0000,0111
}
else // 首位为0,只移位,不进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
}
}
return chCurrByte ;
}int a,b;
C++调用的时候

checkCRC(a,b);就可以了

C的时候必须
a=checkCRC(a,b);
全部回答
代码没贴~~
:~/wenjian/bowl&#36; gcc -s tie.c -o tie.s :~/wenjian/bowl&#36; vim tie.s :~/wenjian/bowl&#36; cat tie.c tie.s #include &lt;stdio.h&gt; int main(void) {  int n;  int sum=0;  do{   printf(&quot;please enter an integer:\n&quot;); scanf(&quot;%d&quot;,&amp;n);    sum=sum+n;      printf(&quot;the sum is %d\n\n&quot;,sum);  }while(n!=0);    return 0; } .file &quot;tie.c&quot; .section .rodata .lc0: .string &quot;please enter an integer:&quot; .lc1: .string &quot;%d&quot; .lc2: .string &quot;the sum is %d\n\n&quot; .text .globl main .type main, @function main: .lfb0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 andl &#36;-16, %esp subl &#36;32, %esp movl &#36;0, 28(%esp) .l2: movl &#36;.lc0, (%esp) call puts leal 24(%esp), %eax movl %eax, 4(%esp) movl &#36;.lc1, (%esp) call __isoc99_scanf movl 24(%esp), %eax addl %eax, 28(%esp) movl 28(%esp), %eax movl %eax, 4(%esp) movl &#36;.lc2, (%esp) call printf movl 24(%esp), %eax testl %eax, %eax jne .l2 movl &#36;0, %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .lfe0: .size main, .-main .ident &quot;gcc: (ubuntu 4.8.2-19ubuntu1) 4.8.2&quot; .section .note.gnu-stack,&quot;&quot;,@progbits
c和c+的本质区别,也就是加入了类,然后换了些函数,比如输入输出以及其他的函数 像你这个,基本语法都没有c++独特的成分 所以这个不需要改吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
搜狗输入法里怎样打出表情?
S201/孟达线(路口)在哪里啊,我有事要去这个
我怎么感觉文华财经行情很卡,盘中常断
腊月是第几月?
求天源迪科内部人士啊
枚举变量与字符型类型可以强制转换吗
【剑网三】丐帮的各种校服的收集方法和要做的
运动员入住奥运村,需要花钱吗
别人给我复制到U盘里的视频,用电脑或电视播
华彬·阳光广场D座我想知道这个在什么地方
泸州市龙马潭区至马湖风景区多少公里
隔了好几个月,大便又出血,怎么会事
如果你要离我而去,可能有一次对我说话的机会
帮忙取名,朱姓女孩,2009年3月2日出生。最好
电脑重装win7一直失败!无论ghost版本还是原
推荐资讯
陈紫函有没有做过整形?
晏三家电地址有知道的么?有点事想过去
求关于钓鱼的视频,电子书,论坛,越全越好。
想买二手车,怎样找会评估鉴定二手车的人
折纸中什么是山线和谷线,想弄明白点
杭州丁桥什么区
楼房打桩的桩柱是否必须是钢筋混凝土的
有陕西师大国际商学院的研究生朋友吗?刘开瑞
湖南牛肉牛杂特色粉面馆怎么去啊,有知道地址
1-戊醇结构简式
做梦钥匙掉在屎里还捞起来了什么意思
为什么有些香味可以促进性欲,有些不行
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?