複製鏈接
請複製以下鏈接發送給好友

八比特組

鎖定
八比特組是一種計算機語言,意思是因特網標準使用八位組。在傳統的二進制數字概念中,1 byte(字節)=8 bit(位)。大多數因特網標準使用八位組(octet)這個術語而不是使用字節來表示8位的量。該術語起始於TCP/IP發展的早期,當時許多早期的工作是在諸如DEC-10這樣的系統上進行的,然而這些系統的結構使用的字節(byte)長度是10位(bit),因此出現了octet的單位,即準確定義 1 octet = 8 bit。
中文名稱
八比特組
英文名稱
octet
定  義
作為整體進行操作的八位二進制數字組。
應用學科
通信科技(一級學科),通信原理與基本技術(二級學科)
中文名
八比特組
外文名
octet
進    制
1 byte(字節)=8 bit(位)
Octets 有兩種不同的前綴,一種為 2 的多次方,另一種是國際單位制(SI,International System of Units)。2 的多次方的格式為國際電工委員會(International Electrotechnical Commission)在 1998 年所制定

八比特組起源

從歷史上看,這個術語octad(或octade)被用來專門表示8位至少在西歐;然而,這種用法今天不再常見。這個詞的確切起源尚不清楚,但它可以在英國找到,荷蘭和德國的消息人士透露1960年代和1970年代整個飛利浦主機電腦的文檔均使用了這個詞。 [1] 

八比特組使用

八位字節在IPv4和IPv6使用八位字節表示的互聯網協議網絡地址。一個IPv4地址由四個八位字節,通常顯示單獨作為一系列的十進制值從0到255,每一個都隔開句號(點)。使用與所有八個比特組八位字節,表示最高的IPv4地址255.255.255.255編號。IPv6地址由16個八位位組,顯示使用十六進制表示每八隅體(兩位數),用冒號(:)在每一對八隅體可讀性,這樣FE80:0000:0000:0000:0123:4567:89AB:CDEF。如果兩個或多個連續八位字節= 0取而代之的可能是後兩個冒號字符(::)但這隻可以使用一次在一個給定的IPv6地址,以避免歧義。前面給出的IPv6地址也可以被寫成FE80::0123:4567:89AB:CDEF。

八比特組八位前綴

在1998年由國際電工委員會標準可以使用八位位組與SI前綴或二進制前綴(2的冪前綴)。
1kibioctet (Kio)
= 2octets
= 1024octets
1mebioctet (Mio)
= 2octets
= 1024Kio
= 1048576octets
1gibioctet (Gio)
= 2octets
= 1024Mio
= 1073741824octets
1tebioctet (Tio)
= 2octets
= 1024Gio
= 1099511627776octets
1pebioctet (Pio)
= 2octets
= 1024Tio
= 1125899906842624octets
1exbioctet (Eio)
= 2octets
= 1024Pio
= 1152921504606846976octets
1zebioctet (Zio)
= 2octets
= 1024Eio
= 1180591620717411303424octets
1yobioctet (Yio)
= 2octets
= 1024Zio
= 1208925819614629174706176octets
如果前綴是giga,tera等,保持同國際標準單位,基於10。在這種情況下:
1kilooctet (ko)
= 10octets
= 1000octets
1megaoctet (Mo)
= 10octets
= 1000ko
= 1000000octets
1gigaoctet (Go)
= 10octets
= 1000Mo
= 1000000000octets
1teraoctet (To)
= 10octets
= 1000Go
= 1000000000000octets
1petaoctet (Po)
= 10octets
= 1000To
= 1000000000000000octets
1exaoctet (Eo)
= 10octets
= 1000Po
= 1000000000000000000octets
1zettaoctet (Zo)
= 10octets
= 1000Eo
= 1000000000000000000000octets
1yottaoctet (Yo)
= 10octets
= 1000Zo
= 1000000000000000000000000octets

八比特組二比特轉八比特

#include <iostream>
using namespace std;
int main()
{
    char str[256];
    cin.getline(str,256);
    cout<<str<<endl;
    int i=0;
    while(str[i]!=0){
        i++;
    }
    int j=i%3;
    int t=0,k;
    if(j==0)
        j=3;
    int n=(3-j+i)/3;
    char str2[n+1];
    i=0;
    for(k=0;k<n;k++){
        t=0;
        while(i<k*3+j){
            t=t<<1;
            if(str[i]=='1')
                t++;
            i++;
        }
        str2[k]=t+0x30;
    }
    str2[k]=0;
    cout<<str2<<endl;
    return 0;
}
參考資料