數據與文字的表示方法

目錄

1. 數據格式

1. 文本文件格式

2. 二進制文件格式

3. 數據庫格式

4. 壓縮格式

2. 數字機器碼表示

整數表示

浮點數表示

3. 字符與數組的表示方法

1. ASCII(美國信息交換標準代碼)

2. 擴展ASCII

3. Unicode

4. UTF-8(8 位 Unicode轉換格式)

5. UTF-16(16 位 Unicode轉換格式)

6. UTF-32(32 位 Unicode轉換格式)

數組的表示方法

1. 一維數組

2. 多維數組

4. 漢字的表示方法

1. GB2312

2. GBK

3. GB18030

4. Big5

5. Unicode

示例編碼比較

5. 證書

1. 奇偶校驗

2. 循環冗余校驗(CRC)

3. 校驗和

4. 哈希函數


????????在計算機世界中,數據和文字的表示方法是信息處理的基礎。不同的數據、數值的機器編碼、字符與字符串的表示方法以及漢字的表示方法各自都有其獨特的方式和標準。將詳細討論這些主題,并簡要介紹單詞的用法。

1. 數據格式

數據格式是指數據在計算機系統中存儲、處理和傳輸的方式,不同的數據格式適用于不同的用途和需求。以下是幾種常見的數據格式及其特點和用途:

1. 文本文件格式

文本文件格式用于存儲文本數據,便于人讀取和編輯。這些文件可以通過簡單的文本編輯器來查看和修改。

  • TXT:純文本格式,不包含任何格式信息。

    • 優點:簡單、通用。
    • 用途:存儲簡單的文本信息,如日志文件、README文件等。
  • CSV(Comma-Separated Values):逗號分隔值格式,用于存儲表格數據,每行表示一條記錄,列與列之間用逗號分隔。

    • 優點:易于導入和導出到電子表格軟件,如Excel。
    • 用途:數據交換、存儲表格數據。
  • JSON(JavaScript Object Notation):一種輕量級的數據交換格式,基于鍵值對的結構。

    • 優點:易于讀取和寫入,適合網絡傳輸。
    • 用途:Web API 數據交換、配置文件。
  • XML(eXtensible Markup Language):一種標記語言,用于表示結構化數據。

    • 優點:自描述性強,支持復雜的數據結構。
    • 用途:配置文件、數據交換、文檔存儲。

示例

{"name": "John Doe","age": 30,"city": "New York"
}

?

2. 二進制文件格式

二進制文件格式用于存儲以二進制編碼的數據,通常由特定的應用程序來處理和解釋。二進制數據格式效率高,但不易于人直接讀取和修改。

  • EXE:可執行文件格式,包含程序代碼、數據和運行時所需的其他信息。

    • 用途:存儲可執行程序。
  • DLL(Dynamic Link Library):動態鏈接庫文件,包含可以被多個程序共享的代碼和數據。

    • 用途:存儲可重用的代碼庫。
  • JPG(JPEG):圖像文件格式,使用有損壓縮技術。

    • 用途:存儲照片和圖像。
  • MP3:音頻文件格式,使用有損壓縮技術。

    • 用途:存儲音頻文件,如音樂和語音記錄。

示例my_program.exe?是一個二進制可執行文件,只能通過操作系統運行,而不能直接用文本編輯器查看。

?

3. 數據庫格式

數據庫格式用于存儲和查詢大量數據,通常通過數據庫管理系統(DBMS)進行管理。

  • SQL數據庫:基于關系模型的數據庫,如MySQL、PostgreSQL、SQLite。

    • 特點:使用SQL(結構化查詢語言)進行數據查詢和操作。
    • 用途:存儲和管理結構化數據,如用戶信息、交易記錄等。
  • NoSQL數據庫:非關系型數據庫,如MongoDB、Cassandra、Redis。

    • 特點:支持靈活的數據模型,如文檔、鍵值對、列族、圖數據。
    • 用途:處理大規模數據、實時數據分析、復雜的數據結構。

示例

CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100)
);

?

4. 壓縮格式

壓縮格式用于減少文件大小,以提高存儲效率和傳輸速度。壓縮文件通常需要解壓縮才能使用。

  • ZIP:一種常見的壓縮文件格式,支持無損壓縮。

    • 用途:壓縮和打包多個文件和文件夾。
  • RAR:一種專有的壓縮文件格式,通常比ZIP提供更好的壓縮率。

    • 用途:壓縮和打包文件。
  • GZ(Gzip):一種基于GNU壓縮算法的文件壓縮格式,通常用于Unix和Linux系統。

    • 用途:壓縮單個文件。?

示例archive.zip?文件包含多個壓縮的文件和文件夾,可以通過解壓縮工具提取其內容。

?

2. 數字機器碼表示

在計算機內部,所有的數據,包括數字,都是以二進制形式存儲和處理的。二進制只包含 0 和 1 兩種狀態,可以通過電路的開和關兩種狀態來表示,方便計算機進行存儲和運算。

為了表示不同類型的數字,計算機采用了不同的二進制編碼方式,主要包括整數表示和浮點數表示兩種。

整數表示

整數表示使用固定長度的二進制數來表示整數,常見的長度有 8 位、16 位、32 位和 64 位。根據是否有符號位,整數表示又分為無符號整數和有符號整數。

  1. 無符號整數

    • 定義:沒有符號位,所有位都用來表示數值大小。
    • 范圍:以 8 位為例,無符號整數的范圍是 0 到 255 (2^8 - 1)。
    • 示例:8 位無符號整數?00001010?表示十進制的 10。
  2. 有符號整數

    • 定義:最高位作為符號位,0 表示正數,1 表示負數。
    • 表示方法:通常采用補碼表示法,方便進行加減運算。
    • 范圍:以 8 位為例,有符號整數的范圍是 -128 到 127。
    • 示例
      • 8 位補碼?11111111?表示十進制的 -1。
      • 8 位補碼?10000000?表示十進制的 -128。

補碼的計算方法:

  • 正數的補碼與其原碼相同。
  • 負數的補碼是將其原碼除符號位外按位取反,然后加 1。
浮點數表示

浮點數表示用于表示帶有小數部分的數字,它采用 IEEE 754 標準進行編碼,包括單精度浮點數(32 位)和雙精度浮點數(64 位)兩種格式。

IEEE 754 浮點數格式

  • 符號位(Sign Bit): 最高位,0 表示正數,1 表示負數。
  • 指數部分(Exponent): 用于表示數字的冪次,采用移碼表示法。
  • 尾數部分(Mantissa/Fraction): 用于表示數字的有效數字,通常省略最高位的 1。

示例

  • 單精度浮點數?0 10000001 01000000000000000000000?表示十進制的 5.0。

    • 符號位:0?表示正數。
    • 指數部分:10000001?表示 129,減去偏移量 127 后得到 2,即 2 的 2 次方。
    • 尾數部分:01000000000000000000000?轉換為十進制為 0.5,加上省略的最高位 1 后得到 1.5。

    因此,該浮點數表示的值為 1.5 * 2^2 = 6.0。

3. 字符與數組的表示方法

字符和字符串在計算機中通過字符編碼表示。字符編碼是將字符與特定的二進制數值相對應的規則。以下是常見的字符編碼標準及其詳細說明:

1. ASCII(美國信息交換標準代碼)

ASCII 是一種早期的字符編碼標準,使用 7 位二進制數表示 128 個字符,包括英文字母、數字和常用符號。每個字符在 ASCII 表中的對應二進制數稱為其 ASCII 碼。

  • 范圍:0 到 127
  • 示例
    • 字符?A?的 ASCII 碼為?65,二進制表示為?01000001
    • 字符?a?的 ASCII 碼為?97,二進制表示為?01100001

2. 擴展ASCII

擴展ASCII 使用 8 位二進制數表示 256 個字符,增加了更多符號和特定語言字符。

  • 范圍:0 到 255
  • 特性:包含了原始 ASCII 表中的字符以及額外的符號、圖形字符和外語字符。
3. Unicode

Unicode 是為了解決多語言和多字符集問題而提出的標準,涉及全球幾乎所有的文字和符號。Unicode 可以采用不同的編碼方式。

  • 特性:能夠表示幾乎所有的現代和古代文字、符號及標點。
  • 示例
    • 字符?A?的 Unicode 碼為?U+0041
    • 漢字??的 Unicode 碼為?U+6C49

4. UTF-8(8 位 Unicode轉換格式)

UTF-8 是一種可變長度編碼,使用 1 到 4 個字節表示一個字符。它兼容 ASCII,即 ASCII 碼在 UTF-8 中的表示與原 ASCII 表完全相同。

  • 特性:UTF-8 中,一個字符所占用的字節數由其二進制前綴決定。
    • 1 字節:0xxxxxxx
    • 2 字節:110xxxxx 10xxxxxx
    • 3 字節:1110xxxx 10xxxxxx 10xxxxxx
    • 4 字節:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
  • 示例
    • 字符?A?的 UTF-8 編碼為?01000001
    • 漢字??的 UTF-8 編碼為?11100110 10100010 10011100

5. UTF-16(16 位 Unicode轉換格式)

UTF-16 使用 2 或 4 個字節表示一個字符。基本平面字符使用 2 個字節表示,輔助平面字符使用 4 個字節表示。

  • 特性:UTF-16 常用于內部處理和存儲,如 Windows 和 Java 的內部表示方式。
  • 示例
    • 字符?A?的 UTF-16 編碼為?0041
    • 漢字??的 UTF-16 編碼為?6C49

6. UTF-32(32 位 Unicode轉換格式)

UTF-32 使用固定的 4 個字節表示一個字符,每個字符都直接對應其 Unicode 碼點。這種表示方式適合需要快速訪問的場景。

  • 特性:由于每個字符固定占用 4 個字節,UTF-32 編碼可以直接按索引訪問,但在存儲空間上不如 UTF-8 和 UTF-16 高效。
  • 示例
    • 字符?A?的 UTF-32 編碼為?00000041
    • 漢字??的 UTF-32 編碼為?00006C49

數組的表示方法

在編程中,數組是用于存儲同類型元素的集合。數組可以是一維的,也可以是多維的。數組在內存中的表示依賴于具體的編程語言和實現方式。

1. 一維數組

一維數組是一組線性排列的同類型元素。它們通常通過索引進行訪問,索引從 0 開始。

  • 聲明(偽代碼):
  array = [element1, element2, element3, ...]

?

  • 訪問
  element = array[index]

?

  • 示例
  array = [1, 2, 3, 4, 5]element = array[2]  # 結果為 3
2. 多維數組

多維數組是數組的數組,可以是二維、三維或更高維度。常見的多維數組是二維數組,類似于矩陣。

  • 聲明(偽代碼):

?

  array = [[element11, element12], [element21, element22], ...]
  • 訪問

?

  element = array[row_index][column_index]

?

  • 示例
  array = [[1, 2], [3, 4], [5, 6]]element = array[1][0]  # 結果為 3

4. 漢字的表示方法

漢字是中文的書寫字體,具有復雜的形態和豐富的文化內涵。由于漢字數量龐大且字形復雜,在計算機系統中需要使用特定的編碼方式來實現漢字的存儲、處理和傳輸。以下是幾種常用的漢字編碼方式及其特點:

1. GB2312

  • 定義:GB2312是早期中文編碼標準,全稱是《信息交換用漢字編碼字符集 基本集》。
  • 內容:包含6763個常用漢字和682個其他符號。
  • 編碼方式:使用雙字節編碼,每個漢字占用兩個字節(16位)。
  • 優點:適合早期中文處理需求,應用廣泛。
  • 缺點:覆蓋范圍有限,不包含生僻字和擴展字符。

示例:漢字“漢”的GB2312編碼為BABA

2. GBK

  • 定義:GBK是GB2312的擴展,全稱是《漢字內碼擴展規范》。
  • 內容:包含更多漢字和符號,向下兼容GB2312。
  • 編碼方式:使用雙字節編碼,每個漢字占用兩個字節(16位)。
  • 優點:擴展了漢字和符號的范圍,支持更多字符。
  • 缺點:與國際標準的兼容性較差。

示例:漢字“漢”的GBK編碼為BABA

3. GB18030

  • 定義:GB18030是中國國家標準,全稱是《信息交換用漢字編碼字符集》。
  • 內容:包含所有Unicode漢字,兼容GBK和GB2312。
  • 編碼方式:使用雙字節編碼和四字節編碼混合方式,具體編碼長度視字符而定。
  • 優點:全面覆蓋Unicode字符集,支持所有漢字。
  • 缺點:編碼復雜度較高,存儲空間需求較大。

示例:漢字“漢”的GB18030編碼為BABA

4. Big5

  • 定義:Big5是臺灣和香港地區常用的編碼標準。
  • 內容:包含常用漢字和繁體字,廣泛應用于臺灣和香港地區。
  • 編碼方式:使用雙字節編碼,每個漢字占用兩個字節(16位)。
  • 優點:適合繁體字處理需求,應用廣泛。
  • 缺點:與國際標準的兼容性較差,不包含簡體字。

示例:漢字“漢”的Big5編碼為A7DA

5. Unicode

  • 定義:Unicode是國際標準字符編碼系統,旨在覆蓋全球所有書寫系統。
  • 內容:包含所有漢字以及其他語言字符,支持全球通用的字符集。
  • 編碼方式:Unicode包括多種編碼形式,如UTF-8、UTF-16和UTF-32。常用的UTF-8編碼使用可變長字節進行表示,每個漢字占用3字節或4字節。
  • 優點:全球通用,支持多語言字符集,與現代操作系統和應用程序兼容性好。
  • 缺點:編碼冗長,存儲和傳輸效率相對較低。

示例:漢字“漢”的Unicode編碼為U+6C49。在UTF-8編碼中,表示為E6B18A

示例編碼比較
漢字 "漢" 的不同編碼表示:
- GB2312: BABA
- GBK: BABA
- GB18030: BABA
- Big5: A7DA
- Unicode (UTF-8): E6B18A

5. 證書

校驗碼是一種用于檢測數據在傳輸或存儲過程中是否發生錯誤的方法。它通過附加在數據末尾的校驗信息來驗證數據的完整性和正確性。常見的校驗碼方法包括奇偶校驗、循環冗余校驗(CRC)、校驗和和哈希函數。校驗碼的使用能夠有效地提高數據傳輸和存儲的可靠性,確保數據在傳輸過程中未被篡改或損壞。

1. 奇偶校驗

奇偶校驗是一種簡單的錯誤檢測方法,通過附加一個比特位,使得數據中1的數量保持奇數或偶數狀態。

  • 奇校驗:確保數據中1的數量為奇數。如果當前1的數量為偶數,則附加一個1,否則附加一個0。
  • 偶校驗:確保數據中1的數量為偶數。如果當前1的數量為奇數,則附加一個1,否則附加一個0。

示例:對數據?1010110?進行奇校驗,結果為?10101101

function oddParity(data) {count = countOnes(data);if (count % 2 == 0) {return data + "1";} else {return data + "0";}
}
2. 循環冗余校驗(CRC)

循環冗余校驗(CRC)是一種更復雜的錯誤檢測方法,通過對數據塊進行多項式除法生成校驗碼。CRC廣泛應用于網絡通信和存儲設備中。

  • 生成多項式:選擇一個生成多項式(如?CRC-32?使用的多項式?0x04C11DB7)。
  • 計算過程:對數據進行二進制多項式除法,余數即為CRC校驗碼。

示例:對數據?1011001?進行CRC計算,生成校驗碼。

?

function crc(data, polynomial) {paddedData = data + "0" * (length(polynomial) - 1);remainder = divide(paddedData, polynomial);return remainder;
}
3. 校驗和

校驗和是一種將數據分塊后求和的錯誤檢測方法,結果作為校驗碼。常用于簡單的網絡協議。

  • 計算方法:將數據分成固定長度的塊,對所有塊進行加法運算,取結果的低位作為校驗和。

示例:對數據?10101010 11001100?計算校驗和。

?

function checksum(data) {sum = 0;for (block in data) {sum += block;}return sum & 0xFF;  // 取低位作為校驗和
}
4. 哈希函數

哈希函數是一種通過哈希算法生成固定長度散列值的方法,用于數據完整性校驗和驗證。

  • 特點:哈希值是固定長度的,且對于不同輸入,理想情況下,哈希值應不同。
  • 應用:用于數據完整性校驗、數字簽名、密碼學等。

示例:使用SHA-256算法計算數據的哈希值。

?

function hash(data) {return sha256(data);
}

?

????????綜上所述,理解和掌握數據與文字的表示方法對于計算機科學和信息技術領域的從業者至關重要。希望對數據、機器編碼、字符與字符串的表示方法、漢字的表示方法以及密碼的表示方法有一個清晰的認識。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36273.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試相關-接口測試常問的問題

1.為什么要做接口測試 (1)現在大多系統都是前后端分離的項目,前端和后端的進度可能不一樣,那為了盡早的進入測試,前端界面沒有開發完成的情況下,只要后端的接口開發完了,就可以提前做接口測試了; (2)基于安全考慮,只依賴前端進行限制,已經完全不滿足系統的安全性…

Power Pivot——常用DAX 函數

常用DAX 函數 以下這些函數是 DAX 中最常用的一部分,通過熟練掌握這些函數,你可以有效地進行數據分析和建模。 聚合函數 (Aggregation Functions) SUM() 用途:對指定列中的所有數值求和。 語法:SUM() 示例:SUM(Sale…

重生之我要學后端01--后端語言選擇和對應框架選擇

編程語言 后端開發通常需要掌握至少一種編程語言。以下幾種語言在后端開發中非常流行: Java:廣泛用于企業級應用程序。Python:因其易學性和強大的庫支持(如Django和Flask)而受歡迎。Node.js(JavaScript&a…

電商賣家怎么快速采集復制1688全店寶貝到自己店鋪?淘/貓/拼/抖都適用!

1688上面的貨源品類豐富,很多賣家都是在這里找廠家,當我們找好廠家后,怎么將廠家店鋪里所有寶貝都復制到自己店鋪呢? 雖然1688平臺本身支持鋪貨到其他平臺,但一個個鋪貨太耗費時間了。 阿里巴巴中國站獲得1688商品詳…

【AI大模型RAG】深入探索檢索增強生成(RAG)技術

目錄 1. 引言2. RAG技術概述2.1 RAG技術的定義2.2 RAG技術的工作原理2.3 RAG技術的優勢2.4 RAG技術的應用場景 3. RAG的工作流程3.1 輸入處理3.2 索引建立3.3 信息檢索3.4 文檔生成3.5 融合與優化 4. RAG范式的演變4.1 初級 RAG 模型4.2 高級 RAG 模型4.3 模塊化 RAG 模型優化技…

會計報表分析

目錄 一. 會計報表的種類 \quad 一. 會計報表的種類 \quad 反應財務狀況的是資產負債表 反應經營成果的是利潤表 有時間點的就是靜態表 動態表就是有一個區間的, 比如一年, 一個季度等

探索這些有趣的API,讓你的應用與眾不同

在這個由數據驅動的時代,我們每天都在與各種應用程序和服務互動,卻很少意識到它們背后的技術奇跡。API,作為這些互動的幕后英雄,不僅簡化了開發過程,還擴展了技術的邊界。有趣的API,特別是那些能夠激發創新…

QT 如何儲存多種數據類型(QVariant )

QVariant 是 Qt 框架中用于存儲各種數據類型的類。它提供了一個強大的類型系統,允許你在運行時存儲和檢索多種類型的數據,而不需要在編譯時確定類型。QVariant 的主要優點在于它的靈活性和通用性,這使得它在 Qt 的很多組件和機制中都被廣泛使…

時間戳是什么,如何使用時間戳

時間戳(Timestamp)是表示特定時間點的數值,通常以自1970年1月1日00:00:00 UTC(協調世界時)以來的秒數或毫秒數來表示。這個時間點被稱為Unix紀元(Unix epoch)。時間戳廣泛用于計算機系統中&…

數據結構教材關于C/C++的研究

變量 指針 引用 變量 普通變量表示一個內存空間,直接printf是內存空間里的值 結構體 定義一個結構體類型變量為什么必須用指針? 因此無法確定結構體需要多少空間,改用指針可以解決這個問題,因為指針的大小是固定的 指針 指…

HTTP協議和Nginx

一、HTTP協議和Nginx 1.套接字Socket 套接字Socket是進程間通信IPC的一種實現,允許位于不同主機(或同一主機)上不同進程之間進行通信和數據交換,SocketAPI出現于1983年BSD4.2實現在建立通信連接的每一端,進程間的傳輸…

binlog與redolog的區別

binlog與redolog的區別 在數據庫管理系統中,日志系統扮演著至關重要的角色,它記錄了數據庫的所有更改,從而確保在發生故障時能夠恢復數據。其中,binlog(二進制日志)和redolog(重做日志&#xf…

Eureka是什么?它是如何工作的?

Eureka是Netflix開發的服務發現框架,現在是Spring Cloud生態系統的一部分。它主要用于AWS云平臺,用來定位服務,以實現中間層服務器的負載均衡和故障轉移。在微服務架構中,服務發現是關鍵的一環,它允許服務和服務彼此發…

理解MySQL核心技術:外鍵的概念、作用和應用實例

引言 在數據庫管理系統(DBMS)中,外鍵(Foreign Key)是維持數據一致性和實現數據完整性的重要工具。本文將詳細介紹MySQL外鍵的基本概念、作用,以及相關的操作指南和應用實例,幫助讀者掌握并靈活…

深入了解PHP的If...Else語句

PHP是目前最流行的服務器端編程語言之一,用于開發動態和交互式網站。在PHP編程中,控制結構是非常重要的概念,它們決定了代碼的執行流程。其中,if…else語句是最常用的控制結構之一。本文將深入介紹PHP中的if…else語句&#xff0c…

【Android】怎么創建一個隱藏圖標的應用

項目需求 創建一個不帶啟動圖標的app 項目實現 1.低版本上 在低版本的Android系統上面&#xff0c;可以簡單使用這個,但是現在很多版本都不適用了。 <activityandroid:name".MainActivity"><intent-filter><action android:name"android.int…

算子級血緣和血緣查詢管理

數據鏈路 血緣關系 應用場景&#xff1a;數據資產&#xff0c;數據開發&#xff0c;數據治理&#xff0c;數據安全等等 &#xff08;綠色箭頭上面是數據治理&#xff09; 場景&#xff1a; 數據鏈路的高效盤點與理解 數倉模型的長效優化機制 風險影響的及時全面分析 重復…

linux kswapd0進程cpu占用一直居高不下

kswapd0 是 Linux 內核中的一個進程&#xff0c;負責管理虛擬內存和交換&#xff08;swap&#xff09;操作。當該進程的 CPU 占用率居高不下時&#xff0c;通常表示系統正在頻繁地進行交換操作&#xff0c;可能由于內存不足或內存使用不合理。 可能原因 內存不足&#xff1a; …

Android Studio無法正確引入包內存在的類

Android Studio 無法識別同一個 package 里的類&#xff0c;顯示為紅色&#xff0c;但是 compile 沒有問題。 重啟&#xff0c;rebuild,clean都沒有用。 多半是因為 Android Studio 之前發生了錯誤&#xff0c;某些 setting 出了問題。 解決方法如下&#xff1a; 點擊菜單中的…

6月27日-四象限法則

四象限法則&#xff0c;又稱為艾森豪威爾矩陣&#xff08;Eisenhower Matrix&#xff09;&#xff0c;是一種時間管理和任務優先級排序的方法。它將任務分為四個象限&#xff0c;幫助個人識別哪些任務最重要&#xff0c;哪些可以推遲或委托&#xff0c;以及哪些可以完全忽略。以…