什么是八比特组介绍
八比特组是一种计算机语言,意思是因特网标准使用八位组。在传统的二进制数字概念中,1 byte(字节)=8 bit(位)。大多数因特网标准使用八位组(octet)这个术语而不是使用字节来表示8位的量。该术语起始于TCP/IP发展的早期,当时许多早期的工作是在诸如DEC-10这样的系统上进行的,然而这些系统的结构使用的字节(byte)长度是10位(bit),因此出现了octet的单位,即准确定义 1 octet = 8 bit。以上内容由全国科学技术名词审定委员会审定公布
Octets 有两种不同的前缀,一种为 2 的多次方,另一种是国际单位制(SI,International System of Units)。2 的多次方的格式为国际电工委员会(International Electrotechnical Commission)在 1998 年所制定
八比特组起源
从历史上看,这个术语octad(或octade)被用来专门表示8位至少在西欧;然而,这种用法今天不再常见。这个词的确切起源尚不清楚,但它可以在英国找到,荷兰和德国的消息人士透露1960年代和1970年代整个飞利浦主机电脑的文档均使用了这个词。
八比特组使用
八位字节在IPv4和IPv6使用八位字节表示的互联网协议网络地址。一个IPv4地址由四个八位字节,通常显示单独作为一系列的十进制值从0到255,每一个都隔开句号(点)。使用与所有八个比特组八位字节,表示最高的IPv4地址255.255.255.255编号。IPv6地址由16个八位位组,显示使用十六进制表示每八隅体(两位数),用冒号(:)在每一对八隅体可读性,这样FE80:0000:0000:0000:0123:4567:89AB:CDEF。如果两个或多个连续八位字节= 0取而代之的可能是后两个冒号字符()但这只可以使用一次在一个给定的IPv6地址,以避免歧义。前面给出的IPv6地址也可以被写成FE800123:4567:89AB:CDEF。
八比特组八位前缀
在1998年由国际电工委员会标准可以使用八位位组与SI前缀或二进制前缀(2的幂前缀)。
1、kibioctet (Kio) |
= 2octets |
= 1024octets |
|
1、mebioctet (Mio) |
= 2octets |
= 1024Kio |
= 1048576octets |
1、gibioctet (Gio) |
= 2octets |
= 1024Mio |
= 1073741824octets |
1、tebioctet (Tio) |
= 2octets |
= 1024Gio |
= 1099511627776octets |
1、pebioctet (Pio) |
= 2octets |
= 1024Tio |
= 1125899906842624octets |
1、exbioctet (Eio) |
= 2octets |
= 1024Pio |
= 1152921504606846976octets |
1、zebioctet (Zio) |
= 2octets |
= 1024Eio |
= 1180591620717411303424octets |
1、yobioctet (Yio) |
= 2octets |
= 1024Zio |
= 1208925819614629174706176octets |
如果前缀是giga,tera等,保持同国际标准单位,基于10。在这种情况下:
1、kilooctet (ko) |
= 10octets |
= 1000octets |
|
1、megaoctet (Mo) |
= 10octets |
= 1000ko |
= 1000000octets |
1、gigaoctet (Go) |
= 10octets |
= 1000Mo |
= 1000000000octets |
1、teraoctet (To) |
= 10octets |
= 1000Go |
= 1000000000000octets |
1、petaoctet (Po) |
= 10octets |
= 1000To |
= 1000000000000000octets |
1、exaoctet (Eo) |
= 10octets |
= 1000Po |
= 1000000000000000000octets |
1、zettaoctet (Zo) |
= 10octets |
= 1000Eo |
= 1000000000000000000000octets |
1、yottaoctet (Yo) |
= 10octets |
= 1000Zo |
= 1000000000000000000000000octets |
八比特组二比特转八比特
#include using namespace std;int main(){ char str; cin.getline(str,256); cout<<str<<endl; int i=0; while(str!=0){ i++; } int j=i%3; int t=0,k; if(j==0) j=3; int n=(3-j+i)/3; char str2; i=0; for(k=0;k<n;k++){ t=0; while(i<k*3+j){ t=t<<1; if(str==\'1\') t++; i++; } str2=t+0x30; } str2=0; cout<<str2<<endl; return 0;}