当前位置:首页 » 编程语言 » 十六进制转ascii码的c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

十六进制转ascii码的c语言

发布时间: 2022-01-23 03:10:36

‘壹’ ASCII转16进制c语言

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

//函 数 名: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,再连接

‘贰’ C语言中十六进制转字符,

%23%24%25 -- 这是URL 十六进制码。
就是ASCII 码: 0x23 0x24 0x25
HTML 码: # $ %
至于是否拼成HTML码 ⌤ ␥ 双字节码,取决于 字符集编码,GB2312, BIG5, unicode, UTF-* ...

弄清编码,转换很简单。
直接用浏览器就能看:
<HTML><BODY> #$%</BODY></HTML>

‘叁’ C语言程序,怎么把16进制转成字符:

我想你的问题只是将数字转换为字符对吧,那么我就不帮你做全文多行的源码了,我做了一行转换的,你可以再在外层嵌套一个循环,并使用二维数组来实现全文多行的ASCII码转换:
#include "Stdio.h"
#include "Conio.h"

int main(void)
{
int num[10],i=0;

while(getchar() != '\n')
{
getchar();
scanf("%x",&num[i]);
printf("%c",num[i]);
i++;
}
getch();
return 0;
}
原理是这样的:
你每次的四个字节的格式都是\xyy的形式,我只要读入那个十六进制数就可以了,用scanf("%x",&num[i]);语句就可以读入十六进制数字,将一行的十六进制数在循环中全部取出存放在一维数组中。
在输出方面我投了个懒,直接读入就输出了,不过这个不是关键了,关键是以printf("%c",num[i]);语句输出,编译器就会自行把十六进制数转换为ascii码所对应的字符并输出。
现在你明白了么,就是以格式化的输入输出实现读入的是十六进制数,输出的是字符。(那两个getchar()是分别读入字符\和x的哈~~)

‘肆’ 求一个c语言程序代码,可以把16进制数串转ascll码

分析题目,61刚好是a的ascii十六进制值,因此,只需要将‘6’‘1’转换成数值0x61就可以了,以下采用移位方法来转换
#include<stdio.h>
intmain()
{
inti;
charstr[128],ch=0;
gets(str);

for(i=0;str[i];i++)
{
if(str[i]>='0'&&str[i]<='9')
{
ch<<=4;//先左移四位6放到前四位,1放到后四位
ch|=str[i]-'0';//把当前数并到ch中
}
else
{
printf("%c",ch);
}
}
printf("%c ",ch);
return0;
}

‘伍’ 任意十进制数转换成ASCII码C语言程序

标准库里有现成的:
#include <stdio.h>
char buf[12]; //32位整型转换为最长10字符,连上符号最长为11
sprintf(buf,"%d",1234567890);

windows下似乎有个itoa在<stdlib.h>中,我没有查证过:
itoa(1234567890,buf,10);//10代表十进制

‘陆’ c语言 函数十六进制转换成ascii怎么写

#include<stdio.h>

charhextoascii(charhex_byte)
{
charresult;
if((hex_byte>=0)&&(hex_byte<=9))//变成ascii数字
result=hex_byte+0x30;
elseif((hex_byte>=10)&&(hex_byte<=15))//变成ascii大写字母
result=hex_byte+0x37;
else
result=0xff;
returnresult;
}

main()
{
shorthex_data;
charascii_data[10],i;
printf("Inputhexdata: ");
scanf("%x",hex_data);
while(hex_data)
{
ascii_data[i++]=hextoascii((char)(hex_data%16));
hex_data/=16;
}
printf("Outputasciidata: ");
for(unsignedcharj=0;j<i;j++)
printf("%c",ascii_data[j]);
}

‘柒’ 16进制转对应的ASCII码

输入字符串,每两位为一个字符值,然后将这两位转成整数,按字符输出即可!

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

用sprintf()函数就可以了。
sprintf(*dst,"%x",*src)
dst:目标字符串
scr:源字符串
我回去试了一下,不行
一般的sprintf(*dst,"%s",*src)能把src转换成指定的格式
可是sprintf(*dst,"%x",*src)时,*dst存了地址!·

修改了一下,以下是例子,有效果了:
#include "stdafx.h"
#include<stdio.h>
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);

}
参考资料:http://ke..com/view/1295144.htm#3(网络)

‘玖’ 单片机Keil5中16进制转换ASCII码的C语言函数

你这个例子并不是把要16进制数转换ASCII码,十六进制数只有0--F;
所以,你先想清楚要的是什么;

‘拾’ c的16进制ascii码值

D.63
c-m之间相差10个字母,越住后的字母ASCII码值越高
所以c的ASCII码应该为6D-A=63(十六进制的),将6D转换为十进制数为109
109-10=99,再将99转为十六进制为63.
所以答案应该为D.63