~鱼哀歌吧 关注:2贴子:96
  • 6回复贴,共1

什么是ASCII?

只看楼主收藏回复

信息在计算机上是用二进制表示的,这种表示法让人理解很困难,因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来共人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码,他的全称是“美国信息交换标准代码”。
在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:' 单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构 有:&# +字符的ASCII码值+; 三个部分组成)再来存数据库,就没有什么影响了。I


IP属地:湖北1楼2013-10-09 17:59回复
      二进制数转换为十进制数
      二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
      所以,设有一个二进制数:01100100,转换为10进制为:
      下面是竖式:
      01100100换算成十进制
      第0位0*2^0=0
      第1位0*2^1=0
      第2位1*2^2=4
      第3位0*2^3=0
      第4位0*2^4=0
      第5位1*2^5=32
      第6位1*2^6=64
      第7位0*2^7=0
      ---------------------------
      100.
      用横式计算为:
      0*2^0+0*2^1+1*2^2+0*2^3+0*2^4+1*2^5+1*2^6+0*2^7=100
      0乘以多少都是0,所以我们也可以直接跳过值为0的位:
      1.*2^2+1*2^5+1*2^6=100
      I


    IP属地:湖北2楼2013-10-09 18:19
    回复
        6.2.2八进制数转换为十进制数
        八进制就是逢8进1。
        八进制数采用0~7这八数来表达一个数。
        八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
        所以,设有一个八进制数:1507,转换为十进制为:
        用竖式表示:
        1507换算成十进制。
        第0位7*8^0=7
        第1位0*8^1=0
        第2位5*8^2=320
        第3位1*8^3=512
        --------------------------
        839.
        同样,我们也可以用横式直接计算:
        7.*8^0+0*8^1+5*8^2+1*8^3=839
        结果是,八进制数1507转换成十进制数为839
        I


      IP属地:湖北3楼2013-10-09 18:19
      回复
          十六进制数转换成十进制数
          2进制,用两个阿拉伯数字:0、1
          8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
          10进制,用十个阿拉伯数字:0到9
          16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?
          16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
          十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
          所以,在第N(N从0开始)位上,如果是是数X(X大于等于0,并且X小于等于15,即:F)表示的大小为X*16的N次方。
          假设有一个十六进数2AF5,那么如何换算成10进制呢?
          用竖式计算:
          2AF5换算成10进制:
          第0位:5*16^0=5
          第1位:F*16^1=240
          第2位:A*16^2=2560
          第3位:2*16^3=8192
          ---------------------------------
          10997
          直接计算就是:
          5.*16^0+F*16^1+A*16^2+2*16^3=10997
          (别忘了,在上面的计算中,A表示10,而F表示15)
          现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
          假设有人问你,十进数1234为什么是一千二百三十四?你尽可以给他这么一个算式:
          1234=1*10^3+2*10^2+3*10^1+4*10^0
          I


        IP属地:湖北4楼2013-10-09 18:22
        回复
          对于十六进制与ASCII关系,只能说 十六进制 是 ASCII码 的一种表示方法而已,ASCII码 有几种表示方法,二进制、十进制、十六进制和普通字符。
          对于计算机来说,只能识别 十六进制 和 普通字符 这两种方式表达的 ASCII码。


          IP属地:湖北5楼2013-10-09 19:09
          回复
            就我的理解来跟你探讨一下.因为我也是在学这个.
            1.首先明白,计算机使用ascii码来表示数字或字符的,如1,a,A,@,|,等等。它们都有对应的ascii码值。
            2,因为通用的ascii码是7位码版本,7位表示数的范围(0--(2^7-1))共 128个。0-9十个,52个大小写字母,还有66个字符类的。
            明白了这些,我来解决你的问题:
            1.你理解的太局限了,你看1的对应的ascii值是48(十进制的)。用二进制表示就是0011,0001用十六进制表示就是ox31,用八进制表示就是061.用什么进制的数表示无关紧要。你的明白?
            2.用“取四合一”法,0000,0001。前四位是0,后四位是1,写成十六进制即ox01I


            IP属地:湖北6楼2013-10-09 19:11
            回复
              .因为十六进制一个数表示的范围是0-15 化成二进制就是0000-1111 所以一位十六进制数要用4位二进制数来表示。0000 0001 用十六就是 0x 0 1


              IP属地:湖北7楼2013-10-09 19:11
              回复