ASCII码

简介: 看一本书的时候想到的,感觉有点不务正业了,其实我感觉我需要一个全能助手,随时回答我的疑问   ASCII码是用来表示“字符”的。这里的字符包括了0-9九个数字,a-z的26个字母的大小写,各个标点符号,以及回车、空格、退格等一些特殊符号。

看一本书的时候想到的,感觉有点不务正业了,其实我感觉我需要一个全能助手,随时回答我的疑问

 

ASCII码是用来表示“字符”的。
这里的字符包括了0-9九个数字,a-z的26个字母的大小写,各个标点符号,以及回车、空格、退格等一些特殊符号。
ASCII 码使用指定的8位二进制数组合来表示,每个ASCII码是一个8位二进制数,一个ASCII码只能表示一个字符。

补码是用来表示带符号数字的。先将十进制数转成相应的二进制数,在最高位前加上0或1代表数字的正负,就产生了数字的原码,再按一定的规则转换成补码。
补码只能表示数字。不能表示字母或标点等特殊字符。

举个例,比如数字67,补码表示为:01110011,8位二进制数表示一个数字。
如果用到ASCII码,只能对6和7这两个数字分别用8位二进制数表达,因为ASCII码的存放是以每一位为单位的,每个ASCII码只能表示一个字符。
6:00110110
7:00110111
67: 00110110 00110111


以ASCII码形式存储,每个数字占1个字节,10002是5个数字,占5个字节
以二进制形式存储,每个整数不论大小占2个字节,10002是1个整数,占2个字节


A对应于十六进制的10,也即二进制的1010,所以以二进制存储时是1010,在内存中具体的位数和你的操作系统有关
如果用一个记事本打开一个图像文件或者声音文件或者一个EXE文件
会显示乱码,就是因为记事本以文本格式来打开所需要打开的内容,即用文本格式(或者说字符格式)来处理二进制数据导致的结果

 


计算机存储数字时为什么不用ASCII码呢?那个表里不是也有数字么?
因为用 ASCII 码存储数字不够经济,而且不方便计算。
补充:
举个例子,12345 和 6789 两个数字,假如用 ASCII 码储存,就会是:
00110001 00110010 00110011 00110100 00110101

00110110 00110111 00111000 00111001
但是用正常的二进制整形储存,就会是:
00110000 00111001

00010110 00101110
如果要计算 12345+6789,明显用二进制储存就会比 ASCII 占优势。
追问:
那为什么表里还要有数字呢,都用二进制不就行了
回答:
ASCII 表里还是需要数字,因为计算出来的结果还是需要打印出来了,这时候就需要把二进制的数字转换成为 ASCII 码了。输入的时候,就是反过来把 ASCII 码转换成为二进制来保存了。更何况有时候数字更侧重于文字意思,如 3D、AK47,这样的组合就必须用 ASCII 码来储存了。

其实除了整型以外,还有实型的数字,处理小数点。终结一句,就是数字在计算机里面可以有不同的储存方式,是要看用哪一种表达方式比较方便的。也因此,在计算机语言中必须说明用哪一种方式储存,也就是变量的数据类型。

 

 


在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位添1。

 

 

 

大家好,我想问一下ascii码是存储在计算机哪里?是在操作系统中就安装好了吗?还是存储在硬件上?

1、微机的键盘是带CPU的,它把按键信息转换成对应的ascii码,传给主机,操作系统接收到的就是一串ascii字符了。在dos操作系统时代,操作系统只要把对应的ascii码存到显存里,显卡就会根据ascii码查找字模,并显示在屏幕上。windows时代,由于是图形界面,可设定不同字体及字号等,所以这个由ascii码转换成字模的过程就是windows的底层接口和显示驱动来完成的。这一切的处理过程与显示器无关,显示器只是把显卡送来的视频信号扫描出来而已。
2、ascii码本身不需要储存,需要储存的只是代码和字模的对应表
3、键盘和鼠标均是基本的硬件,可以说是最低层的设备,它内部会有CPU处理这些信号,把按键信息处理成主机可识别的二进制数据,然后送给主机,主机收到这些信息时会触发中断,中断信号会传递给CPU,CPU在允许的情况下就会接收这些数据,这是硬件层面的理解。
主机接收数据及处理数据的过程则是软件层面的理解了,驱动负责把这些数据转换成操作系统可理解的数据,操作系统根据再根据这些数据,进行相应操作,如把字符显示到屏幕上。

你的提问中,可见你对计算机原理的理解是很混乱的,还是先看看书吧


在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位添1。

 

目录
相关文章
|
3月前
|
安全 Serverless API
MCP Server 之旅第 5 站:服务鉴权体系解密
本文深入探讨了MCP协议在授权机制上的演进与函数计算对MCP场景下Auth的支持。文章从MCP协议的授权发展入手,分析了2024-11-05无授权支持到2025-03-26基于OAuth 2.1的授权机制,再到最新Draft中引入Protected Resource Metadata(RFC9728)的变化。同时,详细介绍了函数计算如何通过Bearer认证方式解决MCP场景下的授权问题,帮助开发者降低开发成本并提升安全性。
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
238 0
|
数据采集 存储 开发工具
Baumer工业相机堡盟相机如何使用NEOAPI SDK实现相机的连接(C++)
Baumer工业相机堡盟相机如何使用NEOAPI SDK实现相机的连接(C++)
191 0
|
算法 数据处理 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率(C#)
176 0
|
机器学习/深度学习 人工智能 物联网
智慧城市科普:最近很火的概念“智慧城市 ”到底是啥?
主要介绍智慧城市的概念、应用技术、未来发展的意义
|
监控 开发工具 C#
Baumer工业相机堡盟相机BGAPI SDK联合OpenCV进行Mat图像转换(C#)
Baumer工业相机堡盟相机BGAPI SDK联合OpenCV进行Mat图像转换(C#)
237 1
|
编解码 自动驾驶 算法
Baumer工业相机堡盟工业相机如何使用新版本NEOAPI SDK控制相机数据流的开启和关闭(C#)
Baumer工业相机堡盟工业相机如何使用新版本NEOAPI SDK控制相机数据流的开启和关闭(C#)
212 0
|
自动驾驶 算法 Linux
Baumer工业相机堡盟工业相机如何使用BGAPI SDK控制相机数据流的开启和关闭(C#)
Baumer工业相机堡盟工业相机如何使用BGAPI SDK控制相机数据流的开启和关闭(C#)
224 0
|
Ubuntu
嵌入式实践教程--jetson nano安装ROS(国内源)
嵌入式实践教程--jetson nano安装ROS(国内源)
|
Ubuntu 安全 Linux
如何在Ubuntu 20.04 上安装 Xrdp 服务器(远程桌面)
本文最先发布在: https://www.itcoder.tech/posts/how-to-install-xrdp-on-ubuntu-20-04/ Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。
63917 0
如何在Ubuntu 20.04 上安装 Xrdp 服务器(远程桌面)