字符加上'0'等于ascii码值48,不加引号0等于数值0,为什么不加引号就是字符本身的数值了?怎么变来的?

字符加上'0'等于ascii码值48,不加引号0等于数值0,为什么不加引号就是字符本身的数值了?怎么变来的?请阐述下字符0为何等于数值0的过程和原理单引号是字符双引号是字... 字符加上'0'等于ascii码值48,不加引号0等于数值0,为什么不加引号就是字符本身的数值了?怎么变来的?请阐述下字符0为何等于数值0的过程和原理
单引号是字符
双引号是字符串
什么都不加是数字

请问这是谁规定的?是公式变来的还是没有规则就这么定的?还是当初电路就这么设计的?
展开
 我来答
百度网友fda723c
2013-04-14 · 超过15用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:42.1万
展开全部
加单引号,或双引号,或不加,是为了让编译器认识,编译器会把它翻译成不同的二进制码,大家通用的是这个标准,制作的编译器也是这个标准
你写在文件里的,都是字符编码,经过编译器的预处理,再转换成汇编语言,然后汇编成机器代码,最后连接成可执行程序,在这些过程中,字符和数字被区分开
更多追问追答
追问
我的意思是 不加引号0就是0 这之间应该有个公式给转换成数值0才对吧 就是因为有个这个程序转换我们才能输入的字符等于字符本身值,不然怎么两边相等呢?就好比0+1 如果不转换成整数 即使0和1没加引号, 底层应该也是按照 48+49计算的 我感觉好像是这样
追答
你写的所有的代码都要翻译成二进制码才能被计算机识别,
'0'翻译成0011 0000
0翻译成0000 0000 0000 0000
这是人为规定的,翻译的工作是编译器完成的,不然你光写一个CPP文件能执行吗?
翻译是会检测你的语法,翻译会考虑到所有的情况,要么是数值,要么是字符,否则就报错了
0+1,加的工作在翻译0和1之后,相加的是二进制码,不存在如果不转换成整数,如果你不加引号,必然转换成整数。
另外,我建议你把问题按照是什么?为什么?怎么样?归一下类,清楚的描述出来
无名可叫了啊
推荐于2018-03-20 · TA获得超过100个赞
知道答主
回答量:109
采纳率:0%
帮助的人:73.5万
展开全部
这里涉及到的是数据的类型还有它的值
加单引号的表示字符零,即char类型,而asicc码表对应的是把字符型转换成int型对应的值
而不加引号的零本身表示的即int型
更多追问追答
追问
我的意思是,当你从键盘输入一个字符0,计算机内存存的二进制明明是48,根本就不是常数0本身,这不是前后矛盾吗,键盘不是按照ascii表里的二进制设计的吗,那里面值当然是ascii表里的值,为什么咱们还要加上引号才能表示48,这不多次一举吗?

int型我知道,但是这东西又是怎么来的?
追答
加引号是为了存储字符。因为我们编程的时候要用到数字0字符0还有字符串里面的0。
并不是键盘按照二进制设计的,二十为了存储键盘上的字符才有了ascii
引用:/*美国信息交换标准代码是一种用于信息交换的美国标准代码。7位字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些字符使用的值标准化,ASCII允许计算机和计算机程序交换信息。ASCII字符集是与ANSI字符集中的前面128个(0-127)字符相同。

在计算机中,所有的数据在存储和运算时都要使用二进制数表示,同样的,象a、b、c、d这样的52个字母(包括大写)、以及0、1、2等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪个数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通讯而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的美国信息交换标准码,统一规定了上述常用符号用哪个二进制数来表示。*/

之所以加引号是变成语言规定字符型的表示要加引号
如果你写一个简单的读入比如
char a,int i;
cin>>a;
i=a;
cout<<i;
这时你输入的0就不需要加单引号
而输出的就是48
所以之所以加单引号是跟整型的0区分
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松甜恬0Je4ba
2013-04-14 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3414万
展开全部
什么意思? 加上 '0' 表示是一个char类型的,是字符。
不加''就表示一个数,我们常用的数0,是整型的。

你所说的变是什么意思?没有变啊。它在计算机中存储的就不一样,就像 行这个字 多音字,念hang 也念xing 它在字典中存储在不同的两个位置。用不同的拼音来表示。

对于C/C++ 就是这么规定的,说不清什么规则,就像数学上的1+1=2 说不明白。
更多追问追答
追问
谁说不加引号0就是它本身的?没有程序帮你转换你0是0吗?键盘是安装ascii表二进制设计的,那你输入字符也是按ascii码值存的,0的码值是48的二进制,那你怎么说是0本身??前后矛盾了
追答
我说的是人的理解  你不要用计算机的理解来说。  我说的是 用法上 不加引号就当做数字0来处理,你写程序a = 0+1;  不当做0,你要当做什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
溪风水月
2013-04-14 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:37.6万
展开全部
加了单引号,表示字符,双引号是字符串,不加是数字0

回去看看课本基础知识就知道了
这是机器语言在被开发出来的时候就这么规定了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友74e4957ce
2013-04-14
知道答主
回答量:10
采纳率:0%
帮助的人:1.3万
展开全部
额,不加引号系统默认读的就是数字啊^.^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式