ASCII转16进制C语言 C语言中如何将某个字符串转为16进制ascii码并输入到另一...

ASCII\u8f6c16\u8fdb\u5236C\u8bed\u8a00

\u4ee5\u524d\u5f15\u522b\u4eba\u7684\uff0c\u81ea\u5df1\u61d2\u5f97\u518d\u5199\u4e86\u5475\u5475\u3002\u539f\u7406\u5c31\u662f\u8fd9\u6837\u7684\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u7528\u7684

//\u51fd \u6570 \u540d\uff1aAscToHex()
//\u529f\u80fd\u63cf\u8ff0\uff1a\u628aASCII\u8f6c\u6362\u4e3a16\u8fdb\u5236
unsigned char AscToHex(unsigned char aHex){

if((aHex>=0)&&(aHex<=9))

aHex += 0x30;

else if((aHex>=10)&&(aHex<=15))//A-F

aHex += 0x37;

else aHex = 0xff;

return Hex;
}

//\u51fd \u6570 \u540d\uff1aHexToAsc()
//\u529f\u80fd\u63cf\u8ff0\uff1a\u628a16\u8fdb\u5236\u8f6c\u6362\u4e3aASCII
unsigned char HexToAsc(unsigned char aChar){

if((aChar>=0x30)&&(aChar<=0x39))

aChar -= 0x30;

else if((aChar>=0x41)&&(aChar<=0x46))//\u5927\u5199\u5b57\u6bcd

aChar -= 0x37;

else if((aChar>=0x61)&&(aChar<=0x66))//\u5c0f\u5199\u5b57\u6bcd

aChar -= 0x57;

else aChar = 0xff;

return aChar;
}

---\u8865\uff1a\u8fd8\u662f\u6211\u8ba4\u4e3a\u7684\u90a3\u6837\uff0c\u6211\u8fd8\u662f\u89c9\u5f97\u7528C\u8bed\u8a00\u7684\u5b57\u7b26\u4e32\u64cd\u4f5c\u51fd\u6570\u5148\u5206\u5272\uff0c\u518d\u5faa\u73af\u6c42\u51fa\u6bcf\u4e2a\u7684ASCII\uff0c\u518d\u8fde\u63a5

\u7528sprintf()\u51fd\u6570\u5c31\u53ef\u4ee5\u4e86\u3002
sprintf(*dst,"%x"\uff0c*src)
dst:\u76ee\u6807\u5b57\u7b26\u4e32
scr:\u6e90\u5b57\u7b26\u4e32
\u6211\u56de\u53bb\u8bd5\u4e86\u4e00\u4e0b\uff0c\u4e0d\u884c
\u4e00\u822c\u7684sprintf(*dst,"%s"\uff0c*src)\u80fd\u628asrc\u8f6c\u6362\u6210\u6307\u5b9a\u7684\u683c\u5f0f
\u53ef\u662fsprintf(*dst,"%x"\uff0c*src)\u65f6\uff0c*dst\u5b58\u4e86\u5730\u5740\uff01\u00b7

\u4fee\u6539\u4e86\u4e00\u4e0b\uff0c\u4ee5\u4e0b\u662f\u4f8b\u5b50\uff0c\u6709\u6548\u679c\u4e86\uff1a
#include "stdafx.h"
#include
void main()
{
char a[9]="a1234",b[20], *p=a;
int j=0;
while(*p!=0){ j+=sprintf(b+j,"%x",*p++);}
printf("%s\n",b);

}
\u53c2\u8003\u8d44\u6599\uff1ahttp://baike.baidu.com/view/1295144.htm#3\uff08\u767e\u5ea6\u767e\u79d1\uff09

以前引别人的,自己懒得再写了呵呵。原理就是这样的,你可以直接用的

//函 数 名:AscToHex()
//功能描述:把ASCII转换为16进制
unsigned char AscToHex(unsigned char aHex){
if((aHex>=0)&&(aHex<=9))
aHex += 0x30;
else if((aHex>=10)&&(aHex<=15))//A-F
aHex += 0x37;
else aHex = 0xff;
return Hex;
}

//函 数 名:HexToAsc()
//功能描述:把16进制转换为ASCII
unsigned char HexToAsc(unsigned char aChar){
if((aChar>=0x30)&&(aChar<=0x39))
aChar -= 0x30;
else if((aChar>=0x41)&&(aChar<=0x46))//大写字母
aChar -= 0x37;
else if((aChar>=0x61)&&(aChar<=0x66))//小写字母
aChar -= 0x57;
else aChar = 0xff;
return aChar;
}

---补:还是我认为的那样,我还是觉得用C语言的字符串操作函数先分割,再循环求出每个的ASCII,再连接

之前引他人的,自己懒得再写了呵呵。原理就是这样的,你可以直接用的
//函

名:AscToHex()
//功能描述:把ASCII转换为16进制
unsigned
char
AscToHex(unsigned
char
aHex){
if((aHex>=0)&&(aHex<=9))
aHex
+=
0x30;
else
if((aHex>=10)&&(aHex<=15))//A-F
aHex
+=
0x37;
else
aHex
=
0xff;
return
Hex;
}
//函

名:HexToAsc()
//功能描述:把16进制转换为ASCII
unsigned
char
HexToAsc(unsigned
char
aChar){
if((aChar>=0x30)&&(aChar<=0x39))
aChar
-=
0x30;
else
if((aChar>=0x41)&&(aChar<=0x46))//大写字母
aChar
-=
0x37;
else
if((aChar>=0x61)&&(aChar<=0x66))//小写字母
aChar
-=
0x57;
else
aChar
=
0xff;
return
aChar;
}
---补:还是我认为的那样,我还是觉得用C语言的字符串操作函数先分割,再循环求出每一个的ASCII,再连接

  • ASCII瀛楃鍜16杩涘埗浜掕浆
    绛旓細1. 棣栧厛锛屾垜浠渶瑕佺悊瑙ASCII杞16杩涘埗鐨勫師鐞嗐2. 涓嬮潰鎻愪緵浜嗕竴涓畝鍗曠殑C璇█鍑芥暟绀轰緥锛岃绀轰緥鍙互灏嗗崟涓狝SCII瀛楃杞崲涓16杩涘埗鏁般3. 鍑芥暟`AscToHex`鎺ュ彈涓涓猽nsigned char绫诲瀷鐨勫弬鏁癭aHex`锛岀劧鍚庢牴鎹鍙傛暟鐨勫艰繘琛岃浆鎹4. 濡傛灉鍙傛暟`aHex`鍦0鍒9涔嬮棿锛屽畠灏嗙洿鎺ュ姞涓0x30锛堝嵆ASCII鐮佽〃涓殑鏁板瓧0鐨1...
  • ASCII杞16杩涘埗C璇█
    绛旓細//鍔熻兘鎻忚堪锛氭妸ASCII杞崲涓16杩涘埗 unsigned char AscToHex(unsigned char aHex){ if((aHex>=0)&&(aHex<=9))aHex += 0x30;else if((aHex>=10)&&(aHex<=15))//A-F aHex += 0x37;else aHex = 0xff;return Hex;} //鍑 鏁 鍚嶏細HexToAsc()//鍔熻兘鎻忚堪锛氭妸16杩涘埗杞崲涓篈SCII un...
  • 宸茬煡瀛楁瘝C鐨ASCII鐮佹槸10000011,瀛楃G瀵瑰簲鐨凙SCII鐮佺殑鍗佸叚杩涘埗琛ㄧず...
    绛旓細C 鏄10000011 G 灏辨槸C+4=C+1000=10000011+1000=10001011
  • 濡備綍灏ASCII鐮佽浆鎴16杩涘埗鐨勬暟瀛?
    绛旓細1. b=a/16*10+a%16; printf("0x%d",b);2. printf("%x",a);
  • 鍦c璇█涓,鎬庝箞鎶奱sc鐮佺殑a杞寲鎴16鏈哄埗鐨10
    绛旓細void dtoh(int n) 锝沬f(n==0) return; dtoh锛坣/16锛; putchar(n%16<10?n%16+'0':n%16-10+鈥橝鈥);}//姝ゅ嚱鏁板皢鍗佽繘鍒舵暣鏁拌浆鎹㈡垚16杩涘埗鏁癷nt d=a;//寰楀埌a鐨刟sc鐮乮nt h=dtoh(d);//璋冪敤鍑芥暟寰楀埌缁撴灉銆
  • ascii瀛楃杞崄鍏繘鍒鎬庝箞杞?
    绛旓細鑰屽悗闈袱浣峢h浠h〃16杩涘埗鐨勬暟锛屾瘮濡俓x41锛孿x42锛岃浆涔夊悗涔熻〃绀篈銆丅銆傚鏋滆琛ㄧず鏁板肩殑璇濓紝姣斿10杩涘埗鏁板65锛岀敤鍏繘鍒惰〃绀哄氨鏄0o101锛岀敤16杩涘埗琛ㄧず灏辨槸0x42锛屽氨鏄浠庢暟鍊间笂鏉ヨ 0o101 = 0x42 = 65锛岃ASCII鐮佽〃鐨65浠h〃鐨勬槸A锛屾墍浠ワ紝浣犳坊鍔犺浆涔夌鍚庯紝\101 鍜孿x42閮借〃绀篈 ...
  • ASCII鐮佽浆鎹16杩涘埗,C璇█缂栬緫,姹傚ぇ绁炴寚鐐瑰搰
    绛旓細娈甸敊璇傚師鍥犲湪浜巖xdata1涓哄父閲忓瓧绗︿覆鐨勬寚閽堬紝浣滀负瀹炲弬浼犻掔粰ASCItoHEX鍑芥暟锛屽湪璇ュ嚱鏁板唴瀵瑰叾杩涜浜嗕慨鏀规敼锛岃繖灏卞紩璧蜂簡娈甸敊璇傝В鍐冲姙娉:杩涜杞崲鐨勫瓧绗(涔熷氨鏄痳xdata1[]鐨勫唴瀹)鏀逛负杩愯鏃剁‘瀹氾紝涔熷氨鏄湪杩愯鏃剁敱鐢ㄦ埛杈撳叆锛屼唬鐮佺29琛屼笉瑕佽繘琛屽垵濮嬪寲锛
  • ascii鐮佷笌16杩涘埗杞崲
    绛旓細ascii鐮佹槸涓涓0~127涔嬮棿鐨勬暣鏁帮紝鍙互琛ㄧず涓哄崄杩涘埗銆佷簩杩涘埗鎴栦笌16杩涘埗銆傚鏋滀粠鍗佽繘鍒舵暟杞崲涓16杩涘埗鏁帮紝鍙互閲囩敤闄や互16鍙嶅悜鍙栦綑鏁扮殑鏂规硶銆備綑鏁板湪10~15涔嬮棿鐨勶紝鐢ㄥ瓧姣岮~F鏉ヨ〃绀恒
  • ascii鍜16杩涘埗杞崲
    绛旓細31h 鍚庨潰鐨刪琛ㄧず鏄鍗佸叚杩涘埗hex鐨勭缉鍐欍傚湪ASCII鐮佽〃涓紝瀛楃鐨勫搴旂殑ASCII鐮佸嵆鍙互鐢10杩涘埗琛ㄧず锛屼篃鍙互鐢16杩涘埗琛ㄧず銆備緥濡 A 65鏄崄杩涘埗锛屽搴旂殑16杩涘埗鏄 41H 鑰屽崄鍏繘鍒剁殑鐩稿姞灏辨槸 閫16杩1 涓婇潰绠 4+0+1+2 =7 2+3+3+3 =11锛堣屽崄鍏繘鍒剁殑11鏄敤B琛ㄧず鐨勶級鎵浠ユ渶鍚庣粨鏋滀负 B7H浜 ...
  • 51鍗曠墖鏈虹紪绋,灏ASCII鐮佽浆鎹负鍗佸叚杩涘埗鏁
    绛旓細濡傛灉鏄暟瀛楃殑璇ASCII鐮佽浆鎹负锛歺-'0'濡傛灉鏄瓧绗︾殑璇滱SCII鐮佽浆鎹负锛歺-'A'鎴栬厁-'a'
  • 扩展阅读:ascii码在线转换器 ... 进制转换器 ... 16进制ascii码表图 ... 数字转ascii码 c语言 ... ascii在线转换工具 ... 16进制ascii码在线 ... 16进制计算器 ... ascii十进制对照表 ... 16进制转ascii转换器在线 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网