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

c语言16进制转ascii码

发布时间: 2022-04-26 10:02:49

㈠ 单片机,c语言编程将16进制转换为ASC码

假设16进制是0—9,那么:
16进制数
+
'0'
=
16进制数对应的ASCII码30H—39H
16进制的A--F,可以类似的变换。

㈡ 求一个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;
}

㈢ c语言字符与ASCII码的转换

#include<stdio.h>

voidmain()

{

unsignedchara;

printf("enterchar:");

scanf("%C",&a);

printf("ascii=%d",a);//强制转化为ascii码

}

(3)c语言16进制转ascii码扩展阅读

C语言ASCII编码的来源

ASCII码

一个二进制位(Bit)有0、1两种状态,一个字节(Byte)有8个二进制位,有256种状态,每种状态对应一个符号,就是256个符号,从00000000到11111111。美国制定了一套英文字符与二进制位的对应关系,称为ASCII码,沿用至今。

ASCII码规定了128个英文字符与二进制的对应关系,占用一个字节(实际上只占用了一个字节的后面7位,最前面1位统一规定为0)。例如,字母a的的ASCII码为01100001,那么你暂时可以理解为字母a存储到内存之前会被转换为01100001,读取时遇到01100001也会转换为a。

㈣ 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(网络)

㈤ 单片机中,如何将16进制转换为ASC码

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

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, 0x45, 0x46}; // byte 为一个字节的定义

假设i为存储单个16进制的数字, 则用ASCII[i]即可获得相应的ASCII码
b) 也可以用计算的方式
假设i中存储单个16进制的数字,
if (i > 9)
{
ascii = 0x40 + (i - 9); // A~F
}
else
{
ascii = 0x30 + i; // 0~9
}
3. 多位数的16进制数可以通过逐位分解实现, 例如0x3AD0, 可以分解为3, A, D, 0转换. 每位16进制数占半个字节, 所以很容易利用移位(连续左移4bits)进行分离.

㈥ 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进制转asc码

#include<stdio.h>
#include<conio.h>
#include<string.h>
#defineN100

intmain()
{
inti,j,n,len;
charst[]="48494A4B4C4D4E4F";
charst2[N];
intchar2num(charch);
for(i=0;i<N;i++)
st2[i]=0;

len=strlen(st);
j=0;
for(i=0;i<len;i+=2)
{
n=char2num(st[i])*16+char2num(st[i+1]);
st2[j++]=n;
}
printf("st2=%s",st2);

getch();
return0;
}

intchar2num(charch)/*将字符转成数字*/
{
if(ch>='a')
returnch-'a'+10;
elseif(ch>='A')
returnch-'A'+10;
else
returnch-'0';
}

㈧ 16进制转对应的ASCII码

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

㈨ C语言字符转换ASCII码

#include<stdio.h>

voidmain()

{

unsignedchara;

printf("enterchar:");

scanf("%C",&a);

printf("ascii=%d",a);//强制转化为ascii码

}

(9)c语言16进制转ascii码扩展阅读:

在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

㈩ 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]);
}