當前位置:首頁 » 編程語言 » 十六進制轉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