##![数据表示方式](http://vbird.dic.ksu.edu.tw/image/logo.png "数据表示方式")数据表示方式
事实上我们的计算机只认识0与1,记录的数据也是只能记录0与1而已,所以计算机常用的数据是二进位的。 但是我们人类常用的数值运算是十进位,文字方面则有非常多的语言,台湾常用的语言就有英文、中文(又分正体与简体中文)、日文等。 那么计算机如何记录与显示这些数值/文字呢?就得要透过一系列的转换才可以啦!底下我们就来谈谈数值与文字的编码系统罗!
###![数字系统](http://vbird.dic.ksu.edu.tw/image/logo.png "数字系统")数字系统
早期的计算机使用的是利用通电与否的特性的真空管,如果通电就是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转成二进位来测试一下好了:
<center>
![二进位转十进位](http://vbird.dic.ksu.edu.tw/linux_basic/0105computers_files/number_01.gif "图3.1.1、十进位转二进位的方法")
二进位转十进位
</center>
最后的写法就如同上面的红色箭头,由最后的数字向上写,因此可得到1101010的数字罗! 这些数字的转换系统是非常重要的,因为计算机的加减乘除都是使用这些机制来处理的! 有兴趣的朋友可以再参考一下其他计算计概论的书籍中,关於1的补数/2的补数等运算方式喔!
##![大标题的图示文字编码系统](http://vbird.dic.ksu.edu.tw/image/logo.png "大标题的图示文字编码系统")大标题的图示文字编码系统
既然计算机都只有记录0/1而已,甚至记录的数据都是使用byte/bit等单位来记录的,那么文字该如何记录啊? 事实上文字档案也是被记录为0与1而已,而这个档案的内容要被取出来查阅时,必须要经过一个编码系统的处理才行。 所谓的『编码系统』可以想成是一个『字码对照表』,他的概念有点像底下的图示:
<center>
![图3.2.1、数据参考编码表的示意图](http://vbird.dic.ksu.edu.tw/linux_basic/0105computers_files/word_01.gif "图3.2.1、数据参考编码表的示意图")
图3.2.1、数据参考编码表的示意图
</center>
当我们要写入档案的文字数据时,该文字数据会由编码对照表将该文字转成数字后,再存入档案当中。 同样的,当我们要将档案内容的数据读出时,也会经过编码对照表将该数字转成对应的文字后,再显示到萤幕上。 现在你知道为何浏览器上面如果编码写错时,会出现乱码了吗?这是因为编码对照表写错, 导致对照的文字产生误差之故啦!
常用的英文编码表为ASCII系统,这个编码系统中, 每个符号(英文、数字或符号等)都会占用1bytes的记录, 因此总共会有28=256种变化。至於中文字当中的编码系统目前最常用的就是big5这个编码表了。 每个中文字会占用2bytes,理论上最多可以有216=65536,亦即最多可达6万多个中文字。 但是因为big5编码系统并非将所有的位都拿来运用成为对照,所以并非可达这么多的中文字码的。 目前big5仅定义了一万三千多个中文字,很多中文利用big5是无法成功显示的~所以才会有造字程序说。
big5码的中文字编码对於某些数据库系统来说是很有问题的,某些字码例如『许、盖、功』等字, 由於这几个字的内部编码会被误判为单/双引号,在写入还不成问题,在读出数据的对照表时, 常常就会变成乱码。不只中文字,其他非英语系国家也常常会有这样的问题出现啊!
为了解决这个问题,由国际组织ISO/IEC跳出来制订了所谓的Unicode编码系统, 我们常常称呼的UTF8或万国码的编码就是这个咚咚。因为这个编码系统打破了所有国家的不同编码, 因此目前网际网络社会大多朝向这个编码系统在走,所以各位亲爱的朋友啊,记得将你的编码系统修订一下喔!
- 第一部份 Linux 的规划与安装
- 第零章 计算机概论
- 1. 計算机:辅助人脑的好工具
- 2. 个人计算机架构与周边设备
- 3. 数据表示方式
- 4. 软件程序运作
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第一章 Linux是什么
- 1. Linux是什么
- 2. Torvalds的Linux发展
- 3. Linux的特色
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二章 Linux如何学习
- 1. Linux当前的应用角色
- 2. 鸟哥的Linux苦难经验全都录
- 3. 有心朝Linux作业系统学习者的学习态度
- 4. 鸟哥的建议(重点在solution的学习)
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第三章 主机规划与磁盘分区
- 1. Linux与硬件的搭配
- 2. 磁盘分区
- 3. 安装Linux前的规划
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第四章 安装CentOS 5.x 与多重引导技巧
- 1. 本练习机的规划--尤其是分割参数
- 2. 开始安装CentOS 5
- 3. 安装后的首次设定
- 4. 多重开机安装流程与技巧
- 5. 关於大硬盘导致无法开机的问题
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第五章 首次登陆与 在线求助 man page
- 1. 首次登陆系统
- 2. 文本模式下命令的下达
- 3. Linux系统的在线求助man page与info page
- 4. 超简单文书编辑器: nano
- 5. 正确的关机方法:sync,shutdown
- 6. 启动过程的问题排解
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第二部分 Linux 文件、目录与磁盘格式
- 第六章 Linux文件权限与 目录配置
- 1. 使用者与群组
- 2. Linux文件权限概念
- 3. Linux目录配置
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第七章 Linux文件与目录管理
- 1. 目录与路径
- 2. 文件与目录管理
- 3. 文件内容查阅
- 4. 文件与目录的默认权限与隐藏权限
- 5. 命令与文件的搜寻:
- 6. 极重要!权限与命令间的关系:
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第八章 Linux 磁盘与 文件系统管理
- 1. 认识 EXT2 文件系统
- 2. 文件系统的简单操作
- 3. 磁盘的分割、格式化、检验与挂载
- 4. 配置启动挂载:
- 5. 内存置换空间(swap)之建置:
- 6. 文件系统的特殊观察与操作
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第九章 文件的压缩与打包
- 1. 压缩文件的用途与技术
- 2. Linux 系统常见的压缩命令
- 3. 打包命令:
- 4. 完整备份工具:dump
- 5. 光盘写入工具
- 6. 其他常见的压缩与备份工具
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第三部分:学习 Shell 与 Shell scripts
- 第十章 vim程序编辑器
- 1. 为何要学 vim
- 2. vi 的使用
- 3. vim 的额外功能
- 4. 其他 vim 使用注意事项
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十一章 认识与学习 BASH
- 1. 认识 BASH 这个 Shell
- 2. Shell 的变量功能
- 3. 命令别名与历史命令
- 4. Bash shell 的操作环境
- 5. 数据流重导向 (Redirection)
- 6. 管线命令 (pipe)
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第十二章 正规表示法与 文件格式化处理
- 1. 前言: 什么是正规表示法
- 2. 基础正规表示法
- 3. 延伸正规表示法
- 4. 文件的格式化与相关处理
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十三章 学习 shell scripts
- 1. 什么是 Shell Script
- 2. 简单的 shell script 练习
- 3. 善用判断式
- 4. 条件判断式
- 5. 回圈 (loop)
- 6. shell script 的追踪与 debug
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第四部分:Linux 使用者管理
- 第十四章 Linux 账号管理与 ACL 权限控制
- 1. Linux 的账号与群组
- 2. 账号管理
- 3. 主机的细部权限规划:ACL 的使用
- 4. 使用者身份切换
- 5. 使用者的特殊 shell 与 PAM 模块
- 6. Linux 主机上的用户信息传递
- 7. 手动新增使用者
- 8. 重点回顾、本章习题、参考数据与延伸阅读
- 第十五章 磁盘配额(Quota)与 进阶文件系统管理
- 1. 磁碟配额 (Quota) 的应用与实作
- 2. 软件磁盘阵列 (Software RAID)
- 3. 逻辑卷轴管理员 (Logical Volume Manager)
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第十六章 例行性工作排程 (crontab)
- 1. 什么是例行性工作排程
- 2. 仅运行一次的工作排程
- 3. 循环运行的例行性工作排程
- 4. 可唤醒停机期间的工作任务
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十七章 程序管理与 SELinux 初探
- 1. 什么是程序 (Process)
- 2. 工作管理 (job control)
- 3. 程序管理
- 4. 特殊文件与程序
- 5. SELinux 初探
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第五部分:Linux 系统管理员
- 第十八章 认识系统服务 (daemon)
- 1. 什么是 daemon 与服务 (service)
- 2. 解析 super daemon 的配置文件
- 3. 服务的防火墙管理 xinetd, TCP Wrappers
- 4. 系统开启的服务
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十九章 认识与分析登录档
- 1. 什么是登录文件
- 2. syslogd :记录登录文件的服务
- 3. 登录文件的轮替 (logrotate)
- 4. 分析登录文件
- 5. 本章习题练习、针对本文的建议
- 第二十章 启动流程、模块管理 与 loader
- 1. Linux 的启动流程分析
- 2. 核心与核心模块
- 3. Boot loader: Grub
- 4. 启动过程的问题解决
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十一章 系统配置工具(网络与 打印机)与硬件侦测
- 1. CentOS 系统配置工具: setup
- 2. 利用 CUPS 配置 Linux 打印机
- 3. 硬件数据收集与驱动,及 lm_sensors
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十二章 软件安装: 原始码与 Tarball
- 1. 开放源码的软件安装与升级简介
- 2. 使用传统程序语言进行编译的简单范例
- 3. 用 make 进行巨集编译
- 4. Tarball 的管理与建议
- 5. 函式库管理
- 6. 检验软件的正确性
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十三章 软件安装:RPM, SRPM 与 YUM 功能
- 1. 软件管理员简介
- 2. RPM 软件管理程序: rpm
- 3. SRPM 的使用: rpmbuild
- 4. YUM 线上升级机制
- 5. 管理的抉择:RPM 还是 Tarball
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十四章 X Window 配置介绍
- 1. 什么是 X Window System
- 2. X Server 配置档解析与配置
- 3. 显卡驱动程序安装范例
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十五章 Linux 备份策略
- 1. 备份要点
- 2. 备份的种类、频率与工具的选择
- 3. VBird 的备份策略与 scripts
- 4. 灾难复原的考量
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十六章 核心编译
- 1. 编译前的任务:认识核心与取得核心原始码
- 2. 核心编译的前处理与核心功能选择
- 3. 核心的编译与安装
- 4. 额外(单一)核心模块编译
- 5. 重点回顾、本章习题、参考数据与延伸阅读