ASCII码如何理解?
前言
刚开始接触ASCII码学习的小白,经常会觉得数据的储存,尤其是字符的储存很难理解:
char c = 'a';
//char c = 0;
//char c = 48;
//char c = '0';
printf("%d\n", c);//以十进制整数形式打印
printf("%c\n", c);//以字符类型打印
printf("%x\n", c);//以十六进制整数形式打印
看到上述代码块,你可以清晰的回答各个输出的原理码?
一、ACSII码是什么?
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示。
而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。==使用 [0, 127] (7位二进制数)的一个数值来表示(相当于无符号char类型在最高位为0时的取值范围(0-127))==一个字符(英文字母,符号等),这样机会有一个一一对应的关系,那么这个就是我们的ASCII码表。
二、ACSII码表
三、ASCII结合数据储存的理解
更新于2022/1/1
- 字符 ‘0’ 对应的ASCII码是 48 ,那么在内存里面,‘0’ 和 48 存放的都是 48对应的32位二进制。
相关解释:在向内存中二进制转化时,取决于自身类型,它们的类型决定了它们的二进制序列的数目。
在C语言中,单纯的裸字符(没有保存到char类型里),他被看为int型。 所以C语言中单纯的裸字符转为4个字节,32个比特位二进制,所以称之为字符整数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)