【ASCII如何理解?】

2023-11-04

请添加图片描述


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(使用前将#替换为@)

【ASCII如何理解?】 的相关文章

  • BigDecimal中divide方法注意问题

    BigDecimal中divide方法抛异常 Non terminating decimal expansion no exact representable decimal result 在使用 BigDecimal rate new B
  • Android9.0 Camera App代码跟踪之对焦

    各位早安 接着上个博客 今天继续跟踪代码 在我跟踪代码的时候脑子里一直有个疑问 相机是怎么对焦的 今天就带着这个疑问来跟踪下代码解开心中的疑问 第一步 先看下进入预览后相机是怎么启动对焦的 打开PhotoModule java搜索关键字Fo

随机推荐