2017年10月17日-重新撿起的知識-位元組(Byte)、比特(bit)-電腦常識

来源:http://www.cnblogs.com/i0ject/archive/2017/10/18/7684632.html
-Advertisement-
Play Games

一、序 畢業已經兩年了,曾經在學校學習的知識早已還給老師了,已經很久沒有好好學習了。雖然曾經也是高收入群體,但是因為從此再也不寫代碼了,覺得人生都沒有樂趣了,所以果斷離職了.....但是看著身邊越來越多的技術大牛和高收入人群和之前對比落差太大,心中未免有些不甘,所以重新撿起被遺忘的知識。曾子曰:“吾 ...


    一、序
    畢業已經兩年了,曾經在學校學習的知識早已還給老師了,已經很久沒有好好學習了。雖然曾經也是高收入群體,但是因為從此再也不寫代碼了,覺得人生都沒有樂趣了,所以果斷離職了.....但是看著身邊越來越多的技術大牛和高收入人群和之前對比落差太大,心中未免有些不甘,所以重新撿起被遺忘的知識。曾子曰:“吾日三省吾身:為人謀而不忠乎?與朋友交而不信乎?傳不習乎”。

    二、比特(bit)、位元組(byte)

    bit又稱為位,1 byte = 8 bit.  記下來就好,想必都聽說過8位機,8位機(bit)有8條線路,每個時鐘周期只能處理8個電信號(00001111),組成一個位元組(btye),而經常聽說32位(bit)、64位(bit)機即是指,在一個時鐘周期內可以處理32/64 位(bit).

    我認為位元組(byte)是基本的存儲單元,比特/位(bit)是CPU基本的運算單元

    1位元組(byte)表示的帶符號位數字範圍,最高位表示符號位,-2^7 ~ 2^7-1,即-128 ~127.為什麼是-128-127呢?

    因為最高表示符號位,正數是0,負數是1。

    正數:首位為0,後七位二進位數即為所表示正數的絕對值

    負數:首位為1,負數在現代電腦里一般用補碼表示,後七位二進位數的原碼+1 (補碼 = 原碼取反+1,將所有位取反,再加1)。補碼

    0000 0000 = 0 

    補碼1000 0000 在10進位里表示什麼???  最高位為1,所以是負數,計算反碼+1。(取反) 127(0111 1111) + 1(0000 0001)= 1*2^6 +1*2^6.......+1*2^0 + 1 = 128, 最高位為1(負數),所以為-128

    0111 1111 = 127

    補碼 1111 1111 -1

    1Kb = 1024bit, K意為千, 2的10次方(因為我們日常使用10進位,因為習慣,所以電腦就被設定成了2的10次方的進位,2*2*2*2*2*2*2*2....

    1個字母/數字 占 1個位元組,而漢字占兩2個位元組。因為帶符號位的1位元組可以表示0~2^7,128個不同的組合,對於數組和字母符號綽綽有餘,所以老外的英語學起來比較簡單。

    而一個中文漢字在GBK編碼里占2個位元組,因為中文博大精深,1位元組只能表示128個東東根本不夠用,因為位元組是基本的存儲單元,沒有聽說過1.3個位元組或者1.5個位元組東西吧,0~128*128個組合足夠表示漢字。所以大於127的才有可能是漢字

   所以,一個含有中文的URL編碼的解碼方式如下,php代碼如下:

<?php
function link_urldecode($url) {
  $uri = '';
  $cs = unpack('C*', $url);
  $len = count($cs);
  for ($i=1; $i<=$len; $i++) {
    $uri .= $cs[$i] > 127 ? '%'.strtoupper(dechex($cs[$i])) : $url{$i-1};
  }
  return $uri;
}
?>

    三、網速100M

    我家的網是100M,為什麼下載速度不是100MB/s?

    這裡的100M是指的是100Mbps(megabits per second),這是的單位是bit....所以我說只有存儲才是byte..

100Mbps = 100*1042K bit/s    1byte = 8 bit , 100Mbps / 8 = 12.5MB/s,所以理論的最大下載速度是12.5MB/s.而且這裡預設的是下行帶寬,100M,上行帶寬一般只有2Mbps,實際最大的上傳速度只有256KB/s....

鏈路層,太網的物理特性決定了數據幀的長度為(46+18)-(1500+18),其中的18是數據幀的頭和尾,也就是說數據幀的內容最大為1500(不包括幀頭和幀尾),即MTU(Maximum Transmission Unit)為1500;  
網路層,因為IP包的首部要占用20位元組,所以這的MTU為1500-20=1480; 
傳輸層,對於UDP包的首部要占用8位元組,所以這的MTU為1480-8=1472; 
所以,在應用層,Data最大長度為1472,單位是byte 約等於1.43Kb
2M的上行帶寬舉例,理論上每秒可以發出179次網路請求。

 

    


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • PS:再次說明一下,原本不想寫的太啰嗦的,可之前那個系列發佈後發現,好多朋友都想馬上拿到代碼立即能上手開發自己的項目,對代碼結構、基礎常識、分類目錄與文件功能結構、常用函數......等等什麼都不懂,然後就想使用,我真的很無語,還有一些朋友有十幾年開發經驗也會問一些很基礎的問題,我都不知道怎麼回答了 ...
  • 一、簡介 阿裡巴巴於10月14日在杭州雲棲大會上,正式發佈了《阿裡巴巴Java開發規約》掃描插件!該插件基於《阿裡巴巴Java開發規約》手冊內容,在掃描代碼後,將不符合規約的代碼按Blocker/Critical/Major三個等級顯示在下方,甚至在IDEA上,還基於Inspection機制提供了實 ...
  • 簡述 寫這個工具主要目的在於減少工作量,bear在寫gitbook的時候,發現對應目錄一個一個寫進去,非常繁瑣,而且最近在學習python,所以,手癢之下寫了一個目錄生成的小工具。 工具使用 本身工具並不複雜,主要實現功能接受一個github中的raw版本的url,然後列印自動生成對應文件的mark ...
  • 本節內容 - 使用nm查看符號 - 使用readelf -s輸出符號信息 - 刪除符號表對反彙編的影響 - 使用strip刪除符號和調試信息 - 使用UPX壓縮並保護可執行文件 ...
  • spring boot / cloud (十九) 併發消費消息,如何保證入庫的數據是最新的? 消息中間件在解決非同步處理,模塊間解耦和,和高流量場景的削峰,等情況下有著很廣泛的應用 . 本文將跟大家一起討論以下其中的異常場景,如題. 場景 在實際工作中,大家可能也都遇到過這樣的需求 : 如 : 系統A ...
  • /p 問題描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用電腦生成了N個1到1000之間的隨機整數(N≤100),對於其中重覆的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 ...
  • 一、CURL小結 個人將歸納curl請求總結成三步 1、創建curl 句柄(curl_init),並設置參數(curl_setopt)(打開冰箱) 2、執行請求(curl_exec),處理返回的數據 (把大象塞進去) 3、關閉curl(curl_close),釋放所有資源(關上冰箱) 其實如果代碼看 ...
  • JavaWeb筆記 一、servlet 真正helloServlet所在的位置 HelloServlet.java package net.zixue.servlet; import jdk.nashorn.internal.runtime.arrays.IteratorAction; import ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...