求助ebcdic编码与ASCII码互转的源程序

C语言字符与ASCII码的互转
C语言中,字符和其ASCII码是等价的,比如'A'这个字符和单字节整数65是等价的.
比如char c='A';int a=c;的话,a就是65
//函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
入:ASCII字符
回:16进制
/////////////////////////////////////////////////////////////////////
unsigned char CharToHex(unsigned char bHex){
if((bHex&=0)&&(bHex&=9))
bHex += 0x30;
else if((bHex&=10)&&(bHex&=15))//大写字母
bHex += 0x37;
else bHex = 0
/////////////////////////////////////////////////////////////////////
//函 数 名:HexToChar()
//功能描述:把16进制转换为ASCII字符
//函数说明:
//调用函数:
//全局变量:
入:16进制
回:ASCII字符
/////////////////////////////////////////////////////////////////////
unsigned char HexToChar(unsigned char bChar){
if((bChar&=0x30)&&(bChar&=0x39))
bChar -= 0x30;
else if((bChar&=0x41)&&(bChar&=0x46))//大写字母
bChar -= 0x37;
else if((bChar&=0x61)&&(bChar&=0x66))//小写字母
bChar -= 0x57;
else bChar = 0
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。1408人阅读
C/C++(40)
Linux(95)
vi/vim(3)
最近由于项目需要,需要将BCD编码转换为对应的字符串,下面为C语言实现,经测试好用!
& & &转载请标明出处!
/*BCD 与 ASCII码转换*/
/*******************************************************************
功能描述:将ascii码转换为bcd码
bcd:转换后的BCD码
asc:需转换的ASCII码串
len:需转换的ascii码串长度
********************************************************************/
uint32 asc2bcd(uint8* bcd, const uint8* asc, uint32 len);
/*******************************************************************
函数名: bcd2asc
功能描述:将bcd码转换为ascii码串
asc:转换的ASCII码串
bcd:需转换的BCD码
len:需转换的BCD码长度
********************************************************************/
uint32 bcd2asc(uint8* asc, const uint8* bcd, uint32 len);
& &&#include &assert.h&
#include &utils.h&
//基于查表实现BCD与Ascii之间的转换
static uint8 bcd2ascii[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
static uint8 ascii2bcd1[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
static uint8 ascii2bcd2[6]
= {0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};
ASC2BCD(uint8 *bcd, const uint8 *asc, uint32 len)
uint8 c = 0;
uint8 index = 0;
uint8 i = 0;
len &&= 1;
for(; i & i++) {
//first BCD
if(*asc &= 'A' && *asc &= 'F') {
index = *asc - 'A';
= ascii2bcd2[index] && 4;
} else if(*asc &= '0' && *asc &= '9') {
index = *asc - '0';
= ascii2bcd1[index] && 4;
//second BCD
if(*asc &= 'A' && *asc &= 'F') {
index = *asc - 'A';
|= ascii2bcd2[index];
} else if(*asc &= '0' && *asc &= '9') {
index = *asc - '0';
|= ascii2bcd1[index];
BCD2ASC (uint8 *asc, const uint8 *bcd, uint32 len)
uint8 c = 0;
for(i = 0; i & i++) {
//first BCD
c = *bcd && 4;
*asc++ = bcd2ascii[c];
c = *bcd & 0x0f;
*asc++ = bcd2ascii[c];
int main(void)//测试程序
const unsigned char ascii[12] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C'};
unsigned char bcd[6];
ASC2BCD(bcd, ascii, 12, 0);
int i = 0;
printf(&ascii = %s\n&, ascii);
for(; i & 6; i++) {
printf(&bcd = 0x%.2x\n&, bcd[i]);
unsigned char ascii[13] = {0};
const unsigned char bcd[6] = {0x01, 0x23, 0x45, 0xCD, 0xEF, 0xAB};
BCD2ASC(ascii, bcd, 6, 0);
printf(&ascii = %s\n&, ascii);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:215028次
积分:2521
积分:2521
排名:第9806名
原创:74篇
转载:68篇
评论:81条
(1)(1)(2)(2)(1)(2)(2)(4)(7)(1)(4)(1)(7)(4)(2)(5)(8)(3)(2)(7)(2)(3)(2)(3)(12)(7)(3)(15)(16)(2)(7)(9)用c语言编写的源程序是以ASCII码形式存放在后缀为.C的文件中吗?求解释,帮帮忙吧!_百度知道
用c语言编写的源程序是以ASCII码形式存放在后缀为.C的文件中吗?求解释,帮帮忙吧!
不一定是ascii码编码方式
还可以有其他编码方式用c写的一般都写在.c文件中,也有其他的
其他类似问题
为您推荐:
其他2条回答
差不多,如果编译器支持gb2312或者utf,就是说变量如果用中文,那就不能用ascii了
是。另外根据编译器的不同,有的还支持utf-8码、utf-16码、utf-16 big endian码形式。
ascii码的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁ascii码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||文档简介
&&所​讲​的​肺​结​核
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
你可能喜欢

我要回帖

更多关于 java ebcdic ascii 的文章

 

随机推荐