1. 程式人生 > >1 位 進位制

1 位 進位制

1 概念

1 計算機二進位制:在計算機中,所有的資料在儲存和運算時都要使用二進位制數表示

              (因為計算機用高電平和低電平分別表示1和0)

2 編碼

         具體用哪些二進位制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼

3 編碼標準化

        美國有關的標準化組織就出臺了ASCII編碼,統一規定了常用符號用哪些二進位制數來表示

4 b byte 字元 位元組

   bite(簡寫b):二進位制數中的一個數位,即  “0” 或者 "1"

  byte(簡寫B):位元組

  位元組跟字元有關!

  英文字元:單位元組

  中文字元:兩個位元組

  1 Byte = 8 bit


  ps:一般檔案大小 都是Byte  

        而寬頻網速 是bit:位元每秒(bits per second)bps

下載速度從理論上來說,應該是 頻寬的 八分之一。

2M 寬頻理論下載速度是 256 KB

10M 寬頻理論下載速度是 1280 KB

  2 ASCII碼 BASE64對照表

    2.1 編碼對照表
    ASCII BASE64:   https://blog.csdn.net/hellolovelife/article/details/81034957

    2.2 BASE64  

         2.2.1 BASE64:包含大小寫字母各26個!+0-9 10個數字 再加特殊字元 + - =64個

         2.2.2 為什麼要使用BASE64?

比如傳送:

        Hello

        world!

        if I send it as ASCII (or UTF-8) it will look like this:

         72 101 108 108 111 10 119 111 114 108 100 33

          其中10 換行符:在某些系統會損壞!所以:要對二進位制進行BASE64編碼!

       2.2.3 BASE64能不能取代URLencode

  base64雖然能編碼特殊字元,但是其對照表中還有+ - ,依然有特殊字元!所以不能替代URLencode!

        2.2.4 BASE64應用常見作用(網路上最常見的用於傳輸8Bit位元組程式碼的編碼方式

主要應用於把二進位制轉化為字元!(即:把二進位制資訊轉化為文字資訊)

         早期的一些郵件伺服器只支援文字資訊,不支援二進位制資訊和檔案。

         而base64編碼後的結果都是純文字的,適合用電子郵件來傳送二進位制資料

        2.2.5 BASE64編碼原理

         三個8位,先變為4個6位,通過在每個6位前補00,最終變成4個8位!(最終的文字長度增加了33%)

   Base64編碼要求把3個8位位元組(3*8=24)轉化為4個6位的位元組(4*6=24),之後在6位的前面補兩個0,形成8位一個位元組的形式 

    可以這麼考慮:把8位的位元組連成一串110101011100010100110011 
    然後每次順序選6個出來之後再把這6二進位制數前面再新增兩個0,就成了一個新的位元組。之後再選出6個來,再新增0,依
    此類推,直到24個二進位制數全部被選完。 
    讓我們來看看實際結果: 

3 BASE64 優化HEX

BASE64與HEX,均在 org.apache.commons.codec 此JAR下討論!

不是JAVA自帶的BASE64或者其他版本!

BASE64與HEX 都可以把位元組流編碼為文字流!

區別:BASE64 轉化為可能包含+ - / =特殊字元

        HEX:不存在特殊字元!是純數字與字母的組合


4 區別 二進位制 位元組 文字 檔案

        byte:位元組

        文字:字元  位元組到文字----可以通過BASE64


相關推薦

【彙編】《組合語言》第 1 章---

之所以學組合語言的動力 組合語言  的英文為  Assembly Language 發達國家由於擁有文藝復興以來嚴謹的科學精神和不斷完善的學術規範,自然科學發展的相對成熟。 回首我國現狀,資訊科技發展時間較短。“落後就要捱打”這個道理我們中國人再明白不過了,所以要想解

最後一個1轉換】

1710: 最後一個1 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 71 解決: 44 [提交][狀態][討論版] 題目描述 對於一個十進位制的數字x,將他轉化為2進位制,他的2進位制將由0和1組成,求裡面的最後一個1在第幾位 輸入 第一行輸入T,代

C/C++學習筆記1節---理解

1.因為計算機只能識別二進位制,所以要先從進位制入手,開始學習。 2.學習進位制,不要想著去把其他進位制轉換成我們所熟知的十進位制,這個是最大的誤區。 例:進位制讀數: 進位制讀數: (1)二進位制: 0 1 10 11 100 101 (2)三進位制:

1.不同數之間的相互轉換

我們比較常用的數制有十進位制、二進位制、八進位制和十六進位制。二進位制就是逢二進一,每位都是小於二的數,其他進位制類推。計算機儲存資料使用的是二進位制編碼。 對於一個R進位制的數X來說,其值可以通過下面的公式算出來:,前面是整數部分,後面是小數部分,m,n為正整數,表示第

1

1 概念1 計算機二進位制:在計算機中,所有的資料在儲存和運算時都要使用二進位制數表示              (因為計算機用高電平和低電平分別表示1和0)2 編碼         具體用哪些二進位制

1.1 表參照

1 ASCII標準版Bin(二進位制)Oct(八進位制)Dec(十進位制)Hex(十六進位制)縮寫/字元解釋0000 00000000NUL(null)空字元0000 00011101SOH(start

程式設計與數學(二):認識羅馬數字,iphone十不是iphone叉?2的0次方為什麼是1,指數及0的作用,

最近買了《程式設計師的數學系列》,雖然很多知識比較基礎,但是重新回顧一下會有跟學生時期的不同見解,我們把看到的比較有意思的與大家分享分享: 1.進位制 我們上學的時候都瞭解過2進位制,10進位制,8進位制,16進位制之類的,這裡簡單提一下 2進位制:0,1

取數字的最低四 轉換

用數字 & 15得最低四位>> 有符號右移  開頭是1補1 是0補0>>>無符號右移 開頭補0輸出數字對應的十六進位制元素:普通方法:System.out.print((char)(num-10+"A")); //輸出數字的十六進位制表現

第002課 的算術運算(1)

654+456 = 1443 幾進位制加法??? 內容綱要 1.2進位制與16進位制的聯絡 2.進位制的加減乘除法運算 課堂練習 1.用2進製表示出16進位制的各元素 2.1111+1111=???(1進位制) 3.ABCEF9-EFAC4=??? 4

noip初賽整理1.6&1.7&1.9(轉換&資訊編碼表示&原碼補碼反碼)

進位制轉換  基數與權         基數:某進位制計數制允許的基本數學符號的個數。一般而言,J進位制數的基數是J。         位權(權):...(無聊定義賊長)。如 11010 B 的權從高到低為16,8,4,2,1。 字尾字母          B:二進

之間的轉換(1)——十進位制向二/八/十六的轉換

1.十進位制轉換為十六/八進位制 #define _CRT_SECURE_NO_WARNINGS //為解決scanf函式不安全的警告問題 #include<stdio.h> #include<stdlib.h> int main() { int i; //基本變

演算法3-1:八

題目描述 將十進位制數轉換為八進位制,並輸出。 圖:將十進位制數轉換為八進位制並輸出 輸入描述 輸入包含若干十進位制正整數。 輸出描述 輸出相應的八進位制數,每個佔一行。 輸入樣例

android藍芽4.0BLE及2.0 2.1 apk 串列埠助手帶16個自定義按鍵和自定義指令 字元接收 十六或字元傳送

android藍芽4.0BLE apk 帶16個自定義按鍵和自定義指令 字元接收 https://pan.baidu.com/s/1eRSfprO android藍芽2.0 2.1 apk 帶16個自定義按鍵和自定義指令 字元接收  帶自動連線 https://pan.b

彙編:116數到ASCII碼轉換

;============================ ;1位16進位制數到ASCII碼轉換 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS SEGMENT Num db 9 ASCII db ? DATAS ends CODES S

名稱中不能包含“=”字元(十六值 0x3D)。 行 1,XXXXXX

問題情境:在解析XML字串的時候,程式報錯,看來是string字串有問題 問題原因:一般情況下,都不太可能是我們的XML拼寫錯誤導致【因為我們都是認真的孩紙】 那麼唯一不同的是,我拼接用來測試的XML,沒有加入換行符。 解決問題:加上換行符之後,就好了

DEVC++(1)單檔案實現過載運算子的十六數類

本文運用DEVC++軟體,通過C++類的定義和過載運算子來實現十六進位制數類的運算操作,程式碼以單檔案的方式來構建。 題目描述如下: 設計1~4位的無符號十六進位制資料類class HEX. 可以建立如 ABCD、1234、DF09、AB、26之類的1~4

(C#)10轉2 數字1的個數

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program

計算機原理

bsp spa 詳細 view 進位制 tps aid 二進制 com 生活中的數字都以10進制為準 1)假定二進制、八進制、十六進制 -----> 十進制 (即 乘加 計算) 2)假定十進制 -----> 二進制、八進制、十六進

MT【142】Bachet 問題,

目標 既然 play 圖片 alt 質量 class pan 組合 問題: 滿足下面兩種限制條件下要想稱出40以內的任何整數重量,最少要幾個砝碼: i)如果砝碼只能在天平的某一邊; ii)如果砝碼可以放在天平的兩邊. 提示:對於 i)先證明如下事實: \[\textbf{

Python中各種之間的轉化

1.十進位制轉化為其它進位制 (1)bin(x):十進位制轉化為二進位制 【例項1】 x=bin(20)   # x的值為字串'0b10100' (2)oct(x):十進位制轉化為八進位制 【例項2】 x=oct(20)   # x的值為字串