第零章、计算机概论
最近更新日期:2009/08/03
3. 数据表示方式
  3.1 数字系统
  3.2 文字编码系统

数据表示方式

事实上我们的计算机只认识0与1,记录的数据也是只能记录0与1而已,所以计算机常用的数据是二进位的。但是我们人类常用的数值运算是十进位,文字方面则有非常多的语言,台湾常用的语言就有英文、中文(又分正体与简体中文)、日文等。那么计算机如何记录与显示这些数值/文字呢?就得要透过一系列的转换才可以啦!底下我们就来谈谈数值与文字的编码系统罗!


数字系统

早期的计算机使用的是利用通电与否的特性的真空管,如果通电就是1,没有通电就是0,后来沿用至今,我们称这种只有0/1的环境为二进位制,英文称为binary的哩。所谓的十进位指的是逢十进一位,因此在个位数归为零而十位数写成1。所以所谓的二进位,就是逢二就前进一位的意思。

那二进位怎么用呢?我们先以十进位来解释好了。如果以十进位来说,3456的意义为:

3456 = 3x103 + 4x102 + 5x101 + 6x100

特别注意:『任何数值的零次方为1』所以100的结果就是1罗。同样的,将这个原理带入二进位的环境中,我们来解释一下1101010的数值转为十进位的话,结果如下:

1101010=1x26 + 1x25 + 0x24 +1x23 + 0x22 + 1x21 + 0x20
= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106

这样你了解二进位的意义了吗?二进位是计算机基础中的基础喔!了解了二进位后,八进位、十六进位就依此类推啦!那么知道二进位转成十进位后,那如果有十进位数值转为二进位的环境时,该如何计算?刚刚是乘法,现在则是除法就对了!我们同样的使用十进位的106转成二进位来测试一下好了:


图3.1.1、十进位转二进位的方法

最后的写法就如同上面的红色箭头,由最后的数字向上写,因此可得到1101010的数字罗!这些数字的转换系统是非常重要的,因为计算机的加减乘除都是使用这些机制来处理的!有兴趣的朋友可以再参考一下其他计算计概论的书籍中,关於1的补数/2的补数等运算方式喔!


文字编码系统

既然计算机都只有记录0/1而已,甚至记录的数据都是使用byte/bit等单位来记录的,那么文字该如何记录啊?事实上文字档案也是被记录为0与1而已,而这个档案的内容要被取出来查阅时,必须要经过一个编码系统的处理才行。所谓的『编码系统』可以想成是一个『字码对照表』,他的概念有点像底下的图示:


图3.2.1、数据参考编码表的示意图

当我们要写入档案的文字数据时,该文字数据会由编码对照表将该文字转成数字后,再存入档案当中。同样的,当我们要将档案内容的数据读出时,也会经过编码对照表将该数字转成对应的文字后,再显示到萤幕上。现在你知道为何浏览器上面如果编码写错时,会出现乱码了吗?这是因为编码对照表写错,导致对照的文字产生误差之故啦!

常用的英文编码表为ASCII系统,这个编码系统中,每个符号(英文、数字或符号等)都会占用1bytes的记录,因此总共会有28=256种变化。至於中文字当中的编码系统目前最常用的就是big5这个编码表了。每个中文字会占用2bytes,理论上最多可以有216=65536,亦即最多可达6万多个中文字。但是因为big5编码系统并非将所有的位都拿来运用成为对照,所以并非可达这么多的中文字码的。目前big5仅定义了一万三千多个中文字,很多中文利用big5是无法成功显示的~所以才会有造字程序说。

big5码的中文字编码对於某些数据库系统来说是很有问题的,某些字码例如『许、盖、功』等字,由於这几个字的内部编码会被误判为单/双引号,在写入还不成问题,在读出数据的对照表时,常常就会变成乱码。不只中文字,其他非英语系国家也常常会有这样的问题出现啊!

为了解决这个问题,由国际组织ISO/IEC跳出来制订了所谓的Unicode编码系统,我们常常称呼的UTF8或万国码的编码就是这个咚咚。因为这个编码系统打破了所有国家的不同编码,因此目前网际网络社会大多朝向这个编码系统在走,所以各位亲爱的朋友啊,记得将你的编码系统修订一下喔!

出处:http://vbird.dic.ksu.edu.tw/linux_basic/0105computers_3.php

鸟哥的Linux私房菜(基础篇)-第零章、计算机概论(零.3)相关推荐

  1. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 1. Linux与硬件的搭配 1.1 认识计算机的硬件配备 1.2 选择与Linux搭配的主机配备: 硬件支持相关网站 1.3 各硬件装 ...

  2. 鸟哥的Linux私房菜(基础篇)- 第十一章、认识与学习 BASH

    第十一章.认识与学习 BASH 最近升级日期:2009/08/25 在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了!因为前面几章我们使用终端机下达命令的方式,就是透过 ...

  3. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.2. 磁盘分区)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 2. 磁盘分区 2.1 磁碟连接的方式与装置档名的关系 2.2 磁碟的组成复习 2.3 磁盘分区表(partition table) 2 ...

  4. 鸟哥的Linux私房菜(基础篇)- 第十七章、程序管理与 SELinux 初探

    第十七章.程序管理与 SELinux初探 最近升级日期:2009/09/11 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为程序(process).程序是操作系统上非常重要的概念,所有系 ...

  5. 鸟哥的Linux私房菜(基础篇)- 第七章、Linux 文件与目录管理

    第七章.Linux文件与目录管理 最近升级日期:2009/08/26 在第六章我们认识了Linux系统下的文件权限概念以及目录的配置说明.在这个章节当中,我们就直接来进一步的操作与管理文件与目录吧!包 ...

  6. 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置

    第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要 ...

  7. 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page

    第五章.首次登陆与在线求助 man page 最近升级日期:2009/08/17 终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了异步的磁盘/内存数据传输模式,同时又是个多人多任务 ...

  8. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧

    第四章.安装 CentOS 5.x 与多重开机小技巧 最近更新日期:2009/08/11 Linux distributions越作越成熟,所以在安装方面也越来越简单!虽然安装非常的简单,但是刚刚前一 ...

  9. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.3. 安装Linux前的规划)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 3. 安装Linux前的规划 3.1 选择适当的distribution 3.2 主机的服务规划与硬件的关系 3.3 主机硬盘的主要规划 ...

  10. 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测

    第二十一章.系统配置工具(网络与打印机)与硬件侦测 最近升级日期:2009/09/15 除了手动配置之外,其实系统提供了一个名为 setup 的命令给系统管理员使用喔!这个命令还能够配置网络呢.此外, ...

最新文章

  1. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例
  2. es6结构赋值--数组
  3. python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果
  4. android组件化开发视频教程,教你打造一个Android组件化开发框架
  5. 性能优化之数据库优化
  6. OpenGL视点跟踪物体运动
  7. 技术问答集锦(17)JVM垃圾回收
  8. Python机器学习:KNN算法02scikit-learn中的机器学习算法封装
  9. sql中全文检索的具体细节
  10. 学习笔记_vnpy实战培训day02
  11. Python 标准库 —— string
  12. windows 和 linux服务器环境下j2sdk 的安装和环境设置
  13. Data Guard组件等相关介绍
  14. Spring Boot 集成 Thymeleaf 快速入门、静态资源映射规则、WebJars
  15. windows7下的docker的安装及使用(持续更新,未完待续,每天一点点)
  16. oracle 英文 简历,简历表英文模板
  17. 20款知名PHP集成环境推荐与优缺点分析、php环境大全推荐(PHP环境搭建包)
  18. 简练网软考知识点整理-项目风险应对策略
  19. 10分钟教会你,如何用模拟量调试电机
  20. FFMPEG之音频播放

热门文章

  1. MySQL-索引优化篇(1)_安装演示库 [前缀索引、联合索引、覆盖索引] explain参数
  2. Java-CentoOS 7安装JDK8 (rpm格式 和 tar.gz格式) 多JDK设置默认的Java 版本
  3. Spring Boot2.x-03Spring Boot基础
  4. Docker-tag
  5. java round指令_Java PApplet.round方法代码示例
  6. 爬虫学习笔记(九)—— Scrapy框架(四):FormRequest、日志
  7. c#样条曲线命令_如何定制CAD功能区界面中的命令?
  8. @cacheable 是否缓存成功_DNS缓存中毒攻击
  9. 关于vue项目中输入框无法正常输入的问题
  10. 我的世界服务器物品绑定插件,我的世界灵魂绑定插件详解