• ASCII码


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

    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。

  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/hxsyl/p/4103033.html
Copyright © 2020-2023  润新知