十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你是打算对数字进行异或,需要将字符变成数字,异或完后再变回字符
站在用户的角度思考问题,与客户深入沟通,找到吐鲁番网站设计与吐鲁番网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖吐鲁番地区。
我只简单写了一下,没有异常处理,顺便说你b中F少了一个
#include stdio.h
int ctoi(char c)
{
if(c='0'c='9')
return c-48;
else if(c='A'c='F')
return c-55;
else if(c='a'c='f')
return c-87;
else
return -1;
}
char itoc(int i)
{
if(i=0i=9)
return i+48;
else if(i=10i=15)
return i+55;
else
return 0;
}
int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\
",c);
return 0;
}
请把问题的描述提供的更具体一些,否则无法提供更详细的帮助。
就现有的信息来看,有这几个点:
1.C语言字符串。就是以单字节字符为内容,用'\0'表示结尾的字符串表示方式。
2.校验和。由数据计算得到的一个数值,具有以下两个特性:
a)相同的数据计算出的校验和结果必定是相同的
b)数据有所变动时,计算出的校验和一般不相同
常用的校验和有累加和异或方式。比如,[1,2,3,4,5]这一组数据的累加较验和就是1+2+3+4+5=15
3.异或。异或是一种二进制(逻辑)运算,定义如下:
1与1、0与0的异或结果为0
1与0、0与1的异或结果为1
如35和27,其二进制表示为:100011和11011。低位对齐后进行异或,结果为:111000,也就是56
4.在C语言中,异或运算的运算符为:^
也就是说35^27的值就是56。
异或是一个数学运算符。它应用于逻辑运算。
在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。
在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
同
或||
异!
拓展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:C语言_百度百科