怎么将16进制转换成ASCII码? 如何把一位16进制的数转换成对应的ASCII码 2

\u7528\u6c47\u7f16\u600e\u4e48\u5c0616\u8fdb\u5236\u8f6cASCII\u7801\uff1f

\u6bd4\u5982\u8bf41aH
\u8f6c\u6362\u6210ASCII\u5c31\u662f31h,41h
\u8ba1\u7b97\u8fc7\u7a0b\u5c31\u662f\u5f53<A\u65f6\uff0c+30h,\u5426\u5219\u52a037h
mov mem,1ah
mov al,mem
and al,0f0h
shr al,4
cmp al,a
jb xx
add al,7h
xx:
add al,30h
mov dl,al
mov ah,02h
int 21h
mov al,mem
and al,0fh
cmp al,a
jb xxx
add al,7h
xxx:
add al,30h
mov dl,al
mov ah,02h
int 21h
\u6c47\u7f16\u5927\u591a\u662f\u6307\u6c47\u7f16\u8bed\u8a00\uff0c\u6c47\u7f16\u7a0b\u5e8f\u3002\u628a\u6c47\u7f16\u8bed\u8a00\u7ffb\u8bd1\u6210\u673a\u5668\u8bed\u8a00\u7684\u8fc7\u7a0b\u79f0\u4e3a\u6c47\u7f16\u3002\u5728\u6c47\u7f16\u8bed\u8a00\u4e2d\uff0c\u7528\u52a9\u8bb0\u7b26(Memoni)\u4ee3\u66ff\u64cd\u4f5c\u7801\uff0c\u7528\u5730\u5740\u7b26\u53f7(Symbol)\u6216\u6807\u53f7(Label)\u4ee3\u66ff\u5730\u5740\u7801\u3002\u8fd9\u6837\u7528\u7b26\u53f7\u4ee3\u66ff\u673a\u5668\u8bed\u8a00\u7684\u4e8c\u8fdb\u5236\u7801\uff0c\u5c31\u628a\u673a\u5668\u8bed\u8a00\u53d8\u6210\u4e86\u6c47\u7f16\u8bed\u8a00\u3002\u4e8e\u662f\u6c47\u7f16\u8bed\u8a00\u4ea6\u79f0\u4e3a\u7b26\u53f7\u8bed\u8a00\u3002\u7528\u6c47\u7f16\u8bed\u8a00\u7f16\u5199\u7684\u7a0b\u5e8f\uff0c\u673a\u5668\u4e0d\u80fd\u76f4\u63a5\u8bc6\u522b\uff0c\u8981\u7531\u4e00\u79cd\u7a0b\u5e8f\u5c06\u6c47\u7f16\u8bed\u8a00\u7ffb\u8bd1\u6210\u673a\u5668\u8bed\u8a00\uff0c\u8fd9\u79cd\u8d77\u7ffb\u8bd1\u4f5c\u7528\u7684\u7a0b\u5e8f\u53eb\u6c47\u7f16\u7a0b\u5e8f\uff0c\u6c47\u7f16\u7a0b\u5e8f\u662f\u7cfb\u7edf\u8f6f\u4ef6\u4e2d\u8bed\u8a00\u5904\u7406\u7684\u7cfb\u7edf\u8f6f\u4ef6\u3002

\u8865\u5145\uff1a\u4e4b\u524d\u7b2c\u4e00\u6bb5\u8bdd\u8bf4\u7684\u6709\u95ee\u9898\uff0c\u6240\u4ee5\u4fee\u6539\u4e86\u4e0b\uff0c\u5982\u4e0b\uff1a\uff08\u53e6\u5916\u63d0\u4ea4\u7684\u65f6\u5019\u6ca1\u6ce8\u610f\uff0c\u7b2c\u4e00\u4e2a\u5144\u5f1f\u7684\u56de\u7b54\u5df2\u7ecf\u662f\u6b63\u786e\u7684\u4e86^_^\uff09
\u4e3b\u8981\u601d\u60f3\u662f0~9\u8f6c\u4e3a\u5bf9\u5e94\u7684ASCII\u7801\u65f6\u52a030h\uff0c\u800ca,b,c,d,e,f\u5219\u52a037h\uff0c\u6bd430h\u591a\u51fa\u6765\u76847h\u5c31\u662f\u901a\u8fc7adc\uff08\u591a\u52a0\u4e86CF\u768401h\uff09\u4ee5\u53cadaa\uff08\u591a\u52a0\u4e8606h\uff09\u5b9e\u73b0\u7684\u3002

\u5148\u8bf4\u5bf90~9\u7684\uff0c\u4ee55\u4e3a\u4f8b\uff0c
and al,0fh
add al,90h
\u53d8\u4e3a95h
daa
\u8fd9\u4e2a\u65f6\u5019\u7684daa\uff0c\u7531\u4e8e95h\u4f4e\u4f4d\uff0c\u9ad8\u4f4d\u90fd\u5c0f\u4e8e9\uff0c\u4e14\u65e0\u8fdb\u4f4d\uff0c\u6240\u4ee5\u4e0d\u53d8
adc al,40h
95h + 40h + CF = D5h
daa
\u4f4e\u4f4d\u4e0d\u53d8\uff0c\u9ad8\u4f4d\u5927\u4e8e9\uff0c\u6240\u4ee5\u52a060h\uff0c\u53d8\u4e3a35h\uff0c\u4e14CF = 1
\u6700\u7ec8\u7ed3\u679c\u4e3a35h\uff0c\u5373\u5b57\u7b265\u5bf9\u5e94\u7684ascii\u780153.

\u7136\u540e\u662fA~F\uff0c\u4ee5C\u4e3a\u4f8b\uff1a
and al,0fh
add al,90h
\u53d8\u4e3a9Ch
daa
\u8fd9\u4e2a\u65f6\u5019\u7684daa\uff0c\u5148\u770b\u4f4e\u4f4d\uff0c\u7531\u4e8e\u4f4e\u4f4d\u662fC\uff0c\u5927\u4e8e9\uff0c\u6240\u4ee5\u52a006h\uff0c\u7ed3\u679c\u53d8\u4e3aA2h\uff0c\u518d\u770b\u9ad8\u4f4d\uff0c\u9ad8\u4f4dA\uff0c\u5927\u4e8e9\uff0c\u6240\u4ee5\u52a060h\uff0c\u53d8\u4e3a02h\uff0cCF = 1\uff08\u6709\u8fdb\u4f4d\uff09

adc al,40h
adc\u64cd\u4f5c\uff0c02h + 40h + CF = 43h
daa
\u6b64\u65f643h\u4f4e\u9ad8\u4f4d\u90fd\u5c0f\u4e8e9\uff0c\u6240\u4ee5\u65e0\u53d8\u5316\u3002\u6700\u540e\u7ed3\u679c43h\uff0c\u4e5f\u5373C\u7684ASCII\u780167

每个数字+0x30,每个字母+0x37就成了。比如开头五个fad1e:
f的16进制是1111,加0x37即1111+00110111=01000110=0x46;
a的16进制是1010,加0x37即1010+00110111=01000001=0x41;
d的16进制是1101,加0x37即1101+00110111=01000100=0x44;
1的16进制是0001,加0x37即0001+00110111=00110001=0x31;
e的16进制是1110,加0x37即1110+00110111=01000101=0x45。
所以16进制数fad1e的ASCII码就是:46 41 44 31 45。
其他的你就照猫画虎吧……

ASCII码本身也是由8位的数字,指示表现的形式不同而已。

比如说字符 i j k l m其实就是十进制的 105 106 107 108 109 也是十六进制的0x69 0x6A 0x6B 0x6C 0x6D,它们在计算机内部的存储方式都是二进制存储的。我想,你所位的转换,是只在屏幕上显示的转换。

比如说:

char a = 'm'

printf("Display by decimalization: %d",a);

printf("Display by Hex: %x",a);

printf("Display by character: %c",a);



有没有这种的转换器我不知道!不过觉得可以用软件 就能实现的! 先判断一个是是否为数字、如是则将其加30H、否则 其为字母、则将其加37H!
if(a[i]<=9)
{a[i]=a[i]+0x30;}
else
{a[i]=a[i]+0x37;}

16进制数为0~F的组合(例如3FFF, 就像10进制数是0~9的组合一样), 而ASCII码是一组符号集合,
它用一个8位(一个字节)的二进制数来表示字符(因为计算机用二进制数来运算), 其中0~9对应的二进制数为0x30~0x39,

char *str="fad1e0617af35d57b328da2fbeda2f27d65d45f277d41dee220bd3873c26e0cf";
char buf[strlen(str)]={0};
for(int i=0;i<strlen(str);i++){

if(str[i]<10){ //小于10的,加0x30,(0~9)
buf[i]=str[i]+0x30;
}else if(str[i]>=10){ //大于10的,加0x37,(A~Z) (变小写加0x57)
buf[i]=str[i]+0x37;
}
}
printf("%s\r\n",buf);

  • 鍗曠墖鏈轰腑,濡備綍灏16杩涘埗杞崲涓篈SC鐮?
    绛旓細2. 灏16杩涘埗鏁拌浆鎹负ASCII鐮佸氨鏄皢0~F杞崲涓哄瓧绗"0"~"F" (鍦ㄨ绠楁満瀛樺偍鐨勮〃绀轰负0x30~0x46). 杞崲鐨勭畻娉曞彲浠ュ绉, 姣旇緝绠鍗曠殑绠楁硶濡備笅:a) 瀹氫箟涓涓暟缁 const byte ASCII[]={0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x...
  • 鍗曠墖鏈,C璇█缂栫▼灏16杩涘埗杞崲涓篈SC鐮
    绛旓細16杩涘埗鏁 + '0' = 16杩涘埗鏁板搴鐨凙SCII鐮30H鈥39H 16杩涘埗鐨凙--F锛屽彲浠ョ被浼肩殑鍙樻崲銆
  • 姹囩紪璇█ 鍗佸叚杩涘埗杞崲涓篈SCII鐮
    绛旓細BUF 瀛愬崟鍏冪殑鐨 姣忎釜瀛楄妭鐨 16 杩涘埗鏁 鍔犱笂 30h
  • 鎶婁竴浣16杩涘埗鏁杞寲涓瀵瑰簲鐨凙SCII鐮銆
    绛旓細浣庝綅涓嶅彉锛岄珮浣嶅ぇ浜9锛屾墍浠ュ姞60h锛屽彉涓35h锛屼笖CF = 1 鏈缁堢粨鏋滀负35h锛屽嵆瀛楃5瀵瑰簲鐨刟scii鐮53.鐒跺悗鏄疉~F锛屼互C涓轰緥锛歛nd al,0fh add al,90h 鍙樹负9Ch daa 杩欎釜鏃跺欑殑daa锛屽厛鐪嬩綆浣嶏紝鐢变簬浣庝綅鏄疌锛屽ぇ浜9锛屾墍浠ュ姞06h锛岀粨鏋滃彉涓篈2h锛屽啀鐪嬮珮浣嶏紝楂樹綅A锛屽ぇ浜9锛屾墍浠ュ姞60h锛屽彉涓02h锛孋F = 1...
  • 姹備竴涓猚璇█绋嬪簭浠g爜,鍙互鎶16杩涘埗鏁颁覆杞琣scll鐮
    绛旓細鍒嗘瀽棰樼洰锛61鍒氬ソ鏄痑鐨刟scii鍗佸叚杩涘埗鍊硷紝鍥犳锛鍙渶瑕佸皢鈥6鈥欌1鈥欒浆鎹㈡垚鏁板0x61灏卞彲浠ヤ簡锛屼互涓嬮噰鐢ㄧЩ浣嶆柟娉曟潵杞崲#include<stdio.h>int main(){int i;char str[128],ch=0;gets(str);for( i=0;str[i];i++ ){if ( str[i]>='0' && str[i] <= '9' ){ch <<= 4 ; //鍏堝乏...
  • 姹傛眹缂栬瑷鍗佸叚杩涘埗鏁杞崲鎴怉SCII 鐮鐨勫師鐞
    绛旓細閽堝16杩涘埗鐨勬瘡涓浣嶏細1銆佸厛鍋囪鍧囦负0~9涔嬮棿鐨勬暟瀛楋紝灏嗗叾鍔 30h 鍙樻垚 ascii鐮侊紱2銆佷笌 3Ah 姣旇緝锛屽皬浜庯紙鍋囪鎴愮珛锛夊垯鐩存帴杞涓嬩竴浣嶏紝鍚﹀垯锛堝亣璁句笉鎴愮珛淇锛夊啀鍔犱笂 07 锛堝嵆鍦ㄢ楢鈥欙綖鈥楩鈥欎箣鍐咃級鍚庤浆涓嬩竴浣嶃
  • 16杩涘埗杞崲ascii鐮鐨勬柟娉曟槸浠涔
    绛旓細鐪ASCII鐮佽〃
  • 鐢ㄦ眹缂鎬庝箞灏16杩涘埗杞珹SCII鐮?
    绛旓細杞崲鎴怉SCII灏辨槸31h,41h 璁$畻杩囩▼灏辨槸褰<A鏃讹紝+30h,鍚﹀垯鍔37h mov mem,1ah mov al,mem and al,0f0h shr al,4 cmp al,a jb xx add al,7h xx:add al,30h mov dl,al mov ah,02h int 21h mov al,mem and al,0fh cmp al,a jb xxx add al,7h xxx:add al,30h mov dl,al mo...
  • JAVA濡備綍灏16杩涘埗鏁板瓧杞崲涓篈SCII涓殑瀛楃涓层
    绛旓細浣跨敤杩欎釜鏂规硶鍙互浼犺繘鍘荤殑16杩涘埗鐨勬暟瀛楃粍鎴愮殑瀛楃涓杞寲涓utf-8鏍煎紡鐨勫瓧绗︿覆 public static String toStringHex1(String s) { byte[] baKeyword = new byte[s.length() / 2];for (int i = 0; i < baKeyword.length; i++) { try { baKeyword[i] = (byte) (0xff & Integer.parseInt(...
  • 濡備綍鎶涓浣16杩涘埗鐨勬暟杞崲鎴瀵瑰簲鐨凙SCII鐮 2
    绛旓細鏈缁堢粨鏋涓35h锛屽嵆瀛楃5瀵瑰簲鐨刟scii鐮53.鐒跺悗鏄疉~F锛屼互C涓轰緥锛歛nd al,0fh add al,90h 鍙樹负9Ch daa 杩欎釜鏃跺欑殑daa锛屽厛鐪嬩綆浣嶏紝鐢变簬浣庝綅鏄疌锛屽ぇ浜9锛屾墍浠ュ姞06h锛岀粨鏋滃彉涓篈2h锛屽啀鐪嬮珮浣嶏紝楂樹綅A锛屽ぇ浜9锛屾墍浠ュ姞60h锛屽彉涓02h锛孋F = 1锛堟湁杩涗綅锛塧dc al,40h adc鎿嶄綔锛02h + 40h + CF = 43...
  • 扩展阅读:16进制ascii码对照表 ... 两个16进制转为ascii ... 16进制在线转换器 ... 16进制转ascii码 在线 ... 16进制转ascii在线工具 ... 进制计算器 ... 10进制转16计算器 ... 16进制在线转换工具 ... ascii码在线转换器 ...

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