48转化成0的过程

goto_code 2009-06-01 10:44:38
对照ASCII码表,你可以发现,十进制的48对应的字符是0,49对应着1
我想请问,怎么输入十进制48后,怎么输出十进制的0(输入十进制49后,怎么输出十进制1)
假设
char *p;int i;
p[0]=48;p[1]=49
怎么使得i由p[0]转化为0,p[1]转化为1呢?
...全文
388 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinyt 2009-06-01
  • 打赏
  • 举报
回复
printf("%c",atoi("48"));
breezes2008 2009-06-01
  • 打赏
  • 举报
回复
char ch=‘0’;//‘0’的ACSII码为48,0的ACSII码为0!
int i; //字符转数字
i=ch-'0';或者:i=ch-0x30;
wood_fish 2009-06-01
  • 打赏
  • 举报
回复
输出格式的选择:
%c 字符型 会按ASCII转换为相应字符
%d 整型数据型 直接输出整型数据
Qlaiaqu 2009-06-01
  • 打赏
  • 举报
回复
对照ASCII码表,你可以发现,十进制的48对应的字符是0,49对应着1
我想请问,怎么输入十进制48后,怎么输出十进制的0(输入十进制49后,怎么输出十进制1)
假设
char *p;int i;
p[0]=48;p[1]=49
怎么使得i由p[0]转化为0,p[1]转化为1呢?
///
你的代码没有分配内存
wood_fish 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 majun01 的回复:]
C/C++ code#include<stdio.h>voidmain()
{char*p="0123456789";inti;
printf("input:\n");
scanf("%d",&i);
printf("output:%c\n",p[i-'0']);
}
[/Quote]

学习
magipan 2009-06-01
  • 打赏
  • 举报
回复
字符'0'在内存中就是以48这个值存储的,所以'0'-48也就是十进制的0了
帅得不敢出门 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 goodname 的回复:]
你既然知道ascii的0-9之间的规律,那么对于char c;
他的整数就是
int i = c - '0';//写的通用点。

printf("%d",i);

对于单个数字有效。
[/Quote]

这个atoi有的实现就是如此
nosxcy 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 majun01 的回复:]
C/C++ code#include <stdio.h>
void main()
{
char *p="0123456789";
int i;
printf("input:\n");
scanf("%d",&i);
printf("output:%c\n",p[i-'0']);
}
[/Quote]
顶这个
  • 打赏
  • 举报
回复
[Quote=引用楼主 goto_code 的帖子:]
对照ASCII码表,你可以发现,十进制的48对应的字符是0,49对应着1
我想请问,怎么输入十进制48后,怎么输出十进制的0(输入十进制49后,怎么输出十进制1)
假设
char *p;int i;
p[0]=48;p[1]=49
怎么使得i由p[0]转化为0,p[1]转化为1呢?
[/Quote]

i=p[0];
printf("%c",i);
leegongbo 2009-06-01
  • 打赏
  • 举报
回复
up~
[Quote=引用 5 楼 goodname 的回复:]
你既然知道ascii的0-9之间的规律,那么对于char c;
他的整数就是
int i = c - '0';//写的通用点。

printf("%d",i);

对于单个数字有效。
[/Quote]
majun01 2009-06-01
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
char *p="0123456789";
int i;
printf("input:\n");
scanf("%d",&i);
printf("output:%c\n",p[i-'0']);
}
goodname 2009-06-01
  • 打赏
  • 举报
回复
你既然知道ascii的0-9之间的规律,那么对于char c;
他的整数就是
int i = c - '0';//写的通用点。

printf("%d",i);

对于单个数字有效。
sui_yuan_zhe 2009-06-01
  • 打赏
  • 举报
回复
0,1是字符'0','1'。直接输出cout << p[0];的话屏幕上就会显示0;
想要运用时候为0必须-48才可以。
日光降临 2009-06-01
  • 打赏
  • 举报
回复

按字符输出即可,看代码.
#include <stdio.h>
int
main()
{
printf("%c %c\n", 48, 49);
return 0;
}

mengde007 2009-06-01
  • 打赏
  • 举报
回复
减去48输出;
pengzhixi 2009-06-01
  • 打赏
  • 举报
回复
纠正一个错误,是'0','1'而非0,1.
tanwan 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 majun01 的回复:]
C/C++ code#include <stdio.h>
void main()
{
char *p="0123456789";
int i;
printf("input:\n");
scanf("%d",&i);
printf("output:%c\n",p[i]-'0');//这里应该是这样改一下吧
}
[/Quote]

70,004

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧