你是打算對數字進行異或,需要將字符變成數字,異或完后再變回字符
站在用戶的角度思考問題,與客戶深入溝通,找到吐魯番網站設計與吐魯番網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、成都網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、國際域名空間、網站空間、企業(yè)郵箱。業(yè)務覆蓋吐魯番地區(qū)。
我只簡單寫了一下,沒有異常處理,順便說你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;
}
請把問題的描述提供的更具體一些,否則無法提供更詳細的幫助。
就現(xiàn)有的信息來看,有這幾個點:
1.C語言字符串。就是以單字節(jié)字符為內容,用'\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語言是一門通用計算機編程語言,廣泛應用于底層開發(fā)。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。?[1]??目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數名和漢字標識符,一定程度上實現(xiàn)了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:C語言_百度百科