高中必修一信息技术:认识数据编码
本文最后更新于 190 天前,其中的信息可能已经有所发展或是发生改变。

序言

本篇文章将带领各位同学基本了解:
1.编码的作用及意义
2.常见的编码方式
3.声音、图像数字化

注:本篇文章内容较为基础,仅作为信息向科普

编码的作用及意义

我们都知道,计算机的应用很广泛,例如手机、电脑等智能设备。那么,什么是编码呢?

编码是对数据进行一定的规则变换,使之能够被计算机识别和管理。我们知道,软件是由代码构建而成。而所谓的“代码”大多指的是编程语言,例如C++、Java、Python。想必同学们肯定会听说过这些大名鼎鼎的编程语言吧。而编程语言呢,就是我们和计算机进行交流的工具。为什么这么说呢,这就涉及到我们计算机使用的语言了。

要想用计算机储存或处理数据,必须先了解什么是二进制。

二进制数01101110010111011110001001
十进制数0123456789
二进制和十进制数

在看完表格后,相信同学们对于二进制和十进制有所了解。而我们的计算机使用的语言就是二进制。而我们的语言在计算机中又是如何表示的呢?

常见的编码方式

针对于我们所使用的语言,美国信息协会制定了一套最通用的基于拉丁字母的单字节编码系统,各国的相关机构根据各国语言也会进行本地化处理,指定自己的编码标准。

常见的编码方式有很多,它们都是为了让计算机能够识别和处理不同的语言和字符。常见的一些字符编码方式有:Unicode、ASCII、GBK、GB2312、UTF-8等。下面是对这些编码方式的简要介绍:

  • Unicode:是一个包含世界上所有字符的符号集,每个字符都有一个唯一的编号,比如U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。
  • ASCII:是美国标准协会制定的一套字符编码,用一个字节(8位)的后7位表示128个字符,包括英文字符、数字、标点符号和控制符号。最高位统一规定为0。
  • GBK/GB2312/GB18030:是针对中文的编码方式,都是双字节编码,可以表示汉字和符号。GB2312只支持6763个汉字,GBK支持21003个汉字,GB18030支持27533个汉字。它们之间是兼容的,也就是说用GB2312编码的汉字可以用GBK或GB18030来解码,并且不会出现乱码。
  • UTF-8:是Unicode的一种实现方式,它使用变长的编码方式,可以用1到4个字节表示一个字符。它具有跨平台和兼容性的优点,是互联网上使用最广泛的一种编码方式。

针对于有些对编码有些了解的同学,这里区分下UTF-8和Unicode:

  • Unicode只规定了每个字符的二进制值,但没有规定如何存储和传输。UTF-8则规定了如何用1到4个字节来表示一个Unicode字符。
  • Unicode是一个固定长度的编码,每个字符都占用两个或四个字节。UTF-8是一个变长的编码,每个字符根据其码点范围占用不同数量的字节。
  • Unicode可以直接表示超过100万个字符,而UTF-8需要通过特殊的编码方式来表示超过65536个字符。
  • Unicode在ASCII范围内与ASCII编码不兼容,而UTF-8在ASCII范围内与ASCII编码完全兼容。

那么,让我们来领略下最通用的基于拉丁字母的单字节编码系统——ASCII编码的风采吧!

二进制十进制十六进制字符/缩写解释
00000000000NUL (NULL)空字符*
00000001101SOH (Start Of Headling)标题开始*
00000010202STX (Start Of Text)正文开始*
00000011303ETX (End Of Text)正文结束*
00000100404EOT (End Of Transmission)传输结束*
00000101505ENQ (Enquiry)请求*
00000110606ACK (Acknowledge)回应/响应/收到通知*
00000111707BEL (Bell)响铃*
00001000808BS (Backspace)退格*
00001001909HT (Horizontal Tab)水平制表符*
00001010100ALF/NL(Line Feed/New Line)换行键*
00001011110BVT (Vertical Tab)垂直制表符*
00001100120CFF/NP (Form Feed/New Page)换页键*
00001101130DCR (Carriage Return)回车键*
00001110140ESO (Shift Out)不用切换*
00001111150FSI (Shift In)启用切换*
000100001610DLE (Data Link Escape)数据链路转义*
000100011711DC1/XON
(Device Control 1/Transmission On)
设备控制1/传输开始*
000100101812DC2 (Device Control 2)设备控制2*
000100111913DC3/XOFF
(Device Control 3/Transmission Off)
设备控制3/传输中断*
000101002014DC4 (Device Control 4)设备控制4*
000101012115NAK (Negative Acknowledge)无响应/非正常响应/拒绝接收*
000101102216SYN (Synchronous Idle)同步空闲*
000101112317ETB (End of Transmission Block)传输块结束/块传输终止*
000110002418CAN (Cancel)取消*
000110012519EM (End of Medium)已到介质末端/介质存储已满/介质中断*
00011010261ASUB (Substitute)替补/替换*
00011011271BESC (Escape)逃离/取消*
00011100281CFS (File Separator)文件分割符*
00011101291DGS (Group Separator)组分隔符/分组符*
00011110301ERS (Record Separator)记录分离符*
00011111311FUS (Unit Separator)单元分隔符*
001000003220(Space)空格
001000013321! 
001000103422 
001000113523# 
001001003624$ 
001001013725% 
001001103826& 
001001113927 
001010004028( 
001010014129) 
00101010422A* 
00101011432B+ 
00101100442C, 
00101101452D 
00101110462E. 
00101111472F/ 
0011000048300 
0011000149311 
0011001050322 
0011001151333 
0011010052344 
0011010153355 
0011011054366 
0011011155377 
0011100056388 
0011100157399 
00111010583A: 
00111011593B; 
00111100603C< 
00111101613D= 
00111110623E> 
00111111633F? 
010000006440@ 
010000016541A 
010000106642B 
010000116743C 
010001006844D 
010001016945E 
010001107046F 
010001117147G 
010010007248H 
010010017349I 
01001010744AJ 
01001011754BK 
01001100764CL 
01001101774DM 
01001110784EN 
01001111794FO 
010100008050P 
010100018151Q 
010100108252R 
010100118353S 
010101008454T 
010101018555U 
010101108656V 
010101118757W 
010110008858X 
010110018959Y 
01011010905AZ 
01011011915B[ 
01011100925C\ 
01011101935D] 
01011110945E^ 
01011111955F_ 
011000009660` 
011000019761a 
011000109862b 
011000119963c 
0110010010064d 
0110010110165e 
0110011010266f 
0110011110367g 
0110100010468h 
0110100110569i 
011010101066Aj 
011010111076Bk 
011011001086Cl 
011011011096Dm 
011011101106En 
011011111116Fo 
0111000011270p 
0111000111371q 
0111001011472r 
0111001111573s 
0111010011674t 
0111010111775u 
0111011011876v 
0111011111977w 
0111100012078x 
0111100112179y 
011110101227Az 
011110111237B{ 
011111001247C| 
011111011257D} 
011111101267E~ 
011111111277FDEL (Delete)删除*
ASCII 编码一览表(标注”*”的为控制字符,白色背景为可显示字符)

声音、图像数字化

声音数字化

我们根据声波的两个参数:频率和幅度,进行声音数据的处理。而由连续变化的波形信号转换为数字信号,以0和1的方式表达,这一过程就称为声音数字化。

声音数字化需要经过采样、量化、编码三个环节。

量化

量化位数越大,数字化精度越高,声音就越保真。想必有些同学听说过8-bit音乐,这种8-bit音乐是一种电子音乐风格,它模仿或使用早期的游戏机和计算机的声音芯片产生的声音。8-bit音乐的特点是简单、方波、低保真、复古,常见于像素风格的游戏或动画中。而通过8-bit音乐我们就能感知到量化程度区别。

编码

我们大家应该都听说过MP3——这一较为常见的音乐编码形式吧。而MP3的时代,对标的是小内存设备,无法存储多个大文件。所以MP3的格式有着精妙的音频压缩技巧,感兴趣的同学可自行了解。而目前我们更为常见的是flac这一无损音频压缩编码。

图像数字化

从商标到海报,从照片到图画,从茶杯图案到教材插图,从信息技术的角度来看,都属于模拟图像。

图像数字化的过程包含采样、量化、编码三个步骤。

编码

我们常见的格式有PNG、JPG、BMP、webp等。

认识程序和程序设计语言

通过C++简单实现华氏度转摄氏度的示例

// 使用iostream库进行输入输出
#include <iostream>
// 使用标准命名空间
using namespace std;
// 定义一个函数convert,接受一个double类型的参数F,返回一个double类型的值C
double convert(double F) {
    // 根据公式计算C,并返回
    double C = (F - 32) * 5 / 9;
    return C;
}
// 定义主函数
int main() {
    // 定义一个变量F,用于存储华氏温度
    double F;
    // 提示用户输入华氏温度,并读入到变量F中
    cout << "请输入华氏温度:" << endl;
    cin >> F;
    // 调用convert函数,将F作为参数传入,并将返回值赋给变量C
    double C = convert(F);
    // 输出结果,保留两位小数
    cout << "对应的摄氏温度为:" << fixed << setprecision(2) << C << endl;
    // 返回0表示程序正常结束
    return 0;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇