青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

閑扯原碼,補(bǔ)碼和反碼

始發(fā)于goal00001111的專欄;允許自由轉(zhuǎn)載,但必須注明作者和出處

 

人類習(xí)慣使用十進(jìn)制數(shù)進(jìn)行數(shù)值計(jì)算,而計(jì)算機(jī)則采用二進(jìn)制,所以為了讓計(jì)算機(jī)幫助人類計(jì)算,首先要把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。本文以最簡(jiǎn)單的8位定點(diǎn)整數(shù)為例,分析了計(jì)算機(jī)存儲(chǔ)和計(jì)算數(shù)值的方法。

地球人都知道,整數(shù)有正負(fù)之分,但計(jì)算機(jī)卻只認(rèn)得“0”“1”,不知道符號(hào)“+”和“-”,所以有必要用“0”“1”來表示“+”“-”。人們規(guī)定用“0”表示“+”,用“1”表示“-”。

       這樣,我們就可以表示出計(jì)算機(jī)能識(shí)別的整數(shù)了,我們把符號(hào)數(shù)值化后的二進(jìn)制數(shù)稱為機(jī)器數(shù),相對(duì)應(yīng)的,符號(hào)沒有數(shù)值化(即仍用“+”“-”號(hào)表示)的二進(jìn)制數(shù)稱為真值。計(jì)算機(jī)只能處理機(jī)器數(shù),不認(rèn)識(shí)真值,真值是給人類看的。

       機(jī)器數(shù)有三種編碼形式,分別稱為:原碼,補(bǔ)碼和反碼。為什么要搞得這么復(fù)雜,那些計(jì)算機(jī)科學(xué)家真的是吃飽了沒事干嗎?且聽我慢慢道來:

       其實(shí)篇頭已經(jīng)介紹了機(jī)器碼的一種形式——原碼,它的特點(diǎn)是有效數(shù)值部分照抄真值,符號(hào)“+”“-”分別用“0”“1”表示。

例如,十進(jìn)制數(shù)+6,它的真值是+000 0110(注意:8位二進(jìn)制數(shù)最高位是符號(hào)位,所以其真值只有7位),對(duì)應(yīng)的原碼就是0000 0110。

又如,十進(jìn)制數(shù)-6,它的真值是-000 0110,對(duì)應(yīng)的原碼就是1000 0110。

原碼表示法比較直觀,它的數(shù)值部分就是該數(shù)的絕對(duì)值,而且與真值的轉(zhuǎn)換十分方便。但是它的加減法運(yùn)算較復(fù)雜,當(dāng)兩數(shù)相加時(shí),機(jī)器要首先判斷兩數(shù)的符號(hào)是否相同,如果相同則兩數(shù)相加,若符號(hào)不同,則兩數(shù)相減。在做減法前,還要判斷兩數(shù)絕對(duì)值的大小,然后用大數(shù)減去小數(shù),最后再確定差的符號(hào),換言之,用這樣一種直接的形式進(jìn)行加運(yùn)算時(shí),負(fù)數(shù)的符號(hào)位不能與其數(shù)值部分一道參加運(yùn)算,而必須利用單獨(dú)的線路確定和的符號(hào)位。要實(shí)現(xiàn)這些操作,電路就很復(fù)雜,這顯然是不經(jīng)濟(jì)實(shí)用的。為了減少設(shè)備,解決機(jī)器內(nèi)負(fù)數(shù)的符號(hào)位參加運(yùn)算的問題,總是將減法運(yùn)算變成加法運(yùn)算,也就引進(jìn)了反碼和補(bǔ)碼這兩種機(jī)器數(shù)。

那如何將減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算呢?

首先引入 “模”的概念,“模”是指一個(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍。以我們每天用來算時(shí)間的時(shí)鐘為例,時(shí)鐘的計(jì)量范圍是0~11,所以它的模就等于12。計(jì)算機(jī)也可以看成一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍,即存在一個(gè)“模”。 機(jī)器字長為n位的計(jì)算機(jī)的計(jì)量范圍是0~2^n-1,模=2^n。

  “模”實(shí)質(zhì)上是計(jì)量器產(chǎn)生“溢出”的量,它的值在計(jì)量器上表示不出來,計(jì)量器上只能表示出模的余數(shù)。例如,雖然時(shí)鐘的模=12,但是在時(shí)鐘的指針并不能真正指向“12點(diǎn)”,“12點(diǎn)”的位置和“0點(diǎn)”是重合的!用C語言表示就是12%12 == 0。

任何有模的計(jì)量器,均可化減法為加法運(yùn)算。這是為什么呢?

仍然以時(shí)鐘為例,假設(shè)當(dāng)前時(shí)針指向10點(diǎn),而準(zhǔn)確時(shí)間是6點(diǎn),調(diào)整時(shí)間可有以下兩種撥法:

一種是倒撥4小時(shí),即:10-4=6

另一種是順撥8小時(shí):10+8=12+6=6

在以12為模的系統(tǒng)中,加8和減4效果是一樣的,因此凡是減4運(yùn)算,都可以用加8來代替。

對(duì)“模”12而言,8和4互為補(bǔ)數(shù)。插一句,所謂“補(bǔ)數(shù)”,實(shí)際上是模擬了數(shù)學(xué)中“補(bǔ)角”的概念,如果兩個(gè)角的度數(shù)之和為180度,我們就稱這兩個(gè)角互為補(bǔ)角。同樣的,如果在某個(gè)計(jì)量系統(tǒng)中,兩個(gè)數(shù)之和剛好等于模,則它們互為“補(bǔ)數(shù)”,例如,在以12為模的系統(tǒng)中,11和1,10和2,9和3,7和5,6和6都互為補(bǔ)數(shù)。

對(duì)于計(jì)算機(jī),其概念和方法完全一樣。機(jī)器字長為n位的計(jì)算機(jī),設(shè)n=8, 所能表示的最大數(shù)是11111111,若再加1稱為100000000(9位),但因只有8位,最高位1自然丟失,又回了00000000,所以8位二進(jìn)制系統(tǒng)的模為2^8。 在這樣的系統(tǒng)中減法問題可以化成加法問題,只需把減數(shù)用相應(yīng)的補(bǔ)數(shù)表示就行了。

把補(bǔ)數(shù)用到計(jì)算機(jī)對(duì)數(shù)據(jù)的處理上,就是補(bǔ)碼。補(bǔ)碼也是一種機(jī)器碼,它克服了原碼的一些缺陷,一方面使符號(hào)位能與有效值部分一起參加運(yùn)算,從而簡(jiǎn)化運(yùn)算規(guī)則;另一方面使減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,進(jìn)一步簡(jiǎn)化計(jì)算機(jī)中運(yùn)算器的線路設(shè)計(jì)。現(xiàn)代的計(jì)算機(jī)都是用補(bǔ)碼的形式來存儲(chǔ)數(shù)據(jù)和進(jìn)行算術(shù)運(yùn)算的。

那補(bǔ)碼是如何編碼的,即我們?nèi)绾螌⒁粋€(gè)整數(shù)的真值轉(zhuǎn)換為一個(gè)8位補(bǔ)碼呢?

回到最初的例子,十進(jìn)制數(shù)+6。我們已經(jīng)知道了它真值是+000 0110,原碼是0000 0110。并且用自然語言介紹了如何實(shí)現(xiàn)真值和原碼的轉(zhuǎn)換。但是,一個(gè)眾所周知的事實(shí)是:“自然語言”不如“數(shù)學(xué)語言”嚴(yán)謹(jǐn)!我們希望能夠用數(shù)學(xué)表達(dá)式來表示真值和原碼的關(guān)系,這就是:

設(shè)機(jī)器字長為N位,真值為X,則:

[X]原  = X,         0 <= X < 2^(n-1)

[X]原  = 2^(n-1) - X, -2^(n-1) < X <= 0   

如何來理解這個(gè)公式呢?

仍以十進(jìn)制數(shù)+6和-6為例:

[+6]原  = 6,把6轉(zhuǎn)換為8位二進(jìn)制數(shù),就得到原碼0000 0110。(本文的最后將會(huì)提供一個(gè)把十進(jìn)制數(shù)轉(zhuǎn)換為機(jī)器碼的C++算法實(shí)現(xiàn))。

[-6]原  = 2^(8-1) – (-6) = 256 + 6 = 262,,把262轉(zhuǎn)換為8位二進(jìn)制數(shù),就得到原碼1000 0110。即最高位本來是0,加了一個(gè)2^(8-1)后,最高位就變成1了。

同樣我們給出補(bǔ)碼的數(shù)學(xué)表達(dá)式:

[X]補(bǔ)  = X,         0 <= X < 2^(n-1)

[X]補(bǔ)  = 2^n + X,   -2^(n-1) <= X < 0

和原碼一樣,正數(shù)的補(bǔ)碼就等于真值,那如何理解負(fù)數(shù)的補(bǔ)碼呢?

例如,[-6]補(bǔ)  = 2^8 + (-6) = 512 – 6 = 506。

且慢,這個(gè)506怎么這么熟悉!它不正是以2^8為模的6的“補(bǔ)數(shù)”嗎?原來負(fù)數(shù)的補(bǔ)碼就等于它的絕對(duì)值的補(bǔ)數(shù)啊!

把506轉(zhuǎn)換為8位二進(jìn)制數(shù),就得到-6的補(bǔ)碼1111 1010。

得到某個(gè)數(shù)的補(bǔ)碼后,我們就可以把減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算了。

補(bǔ)碼加法的運(yùn)算法則為:[X +Y]補(bǔ) = [X] 補(bǔ) + [Y] 補(bǔ)

例1:X =+011 0011,Y=+010 1001,求[X+Y] 補(bǔ)

解:[X +Y]補(bǔ) = [X] 補(bǔ) + [Y] 補(bǔ) = 0011 0011 + 0010 1001 = 0101 1100

例2:X =+011 0011,Y=-010 1001,求[X+Y] 補(bǔ)

解:[X +Y]補(bǔ) = [X] 補(bǔ) + [Y] 補(bǔ) = 0011 0011 + 1101 0111 = 0000 1010 (進(jìn)位溢出)

注:因?yàn)橛?jì)算機(jī)中運(yùn)算器的位長是固定的(本例中只有8位),上述運(yùn)算中產(chǎn)生的最高位進(jìn)位將丟掉,所以結(jié)果不是1 0000 1010,而是0000 1010。

補(bǔ)碼減法公式:[X - Y]補(bǔ) = [X] 補(bǔ) -  [Y] 補(bǔ)= [X] 補(bǔ) + [-Y] 補(bǔ)

其中:[-Y]補(bǔ)稱為負(fù)補(bǔ),求負(fù)補(bǔ)的辦法是:對(duì)補(bǔ)碼的每一位(包括符合位)求反,且未位加1。

例3:X =+011 0011,Y=+010 1001,求[X-Y] 補(bǔ)

解:[X - Y]補(bǔ) =  [X] 補(bǔ) + [-Y] 補(bǔ) = 0011 0011 + 1101 0111 = 0000 1010 (進(jìn)位溢出)

例2:X =+011 0011,Y=-010 1001,求[X-Y] 補(bǔ)

解:[X - Y]補(bǔ) =  [X] 補(bǔ) + [-Y] 補(bǔ) = 0011 0011 + 0010 1001 = 0101 1100

根據(jù)補(bǔ)碼加減運(yùn)算得到的結(jié)果仍然是補(bǔ)碼,若要將補(bǔ)碼轉(zhuǎn)換成原碼,只要對(duì)其再求一次補(bǔ)碼就行了。

再來說說反碼。當(dāng)初引入反碼是為了解決原碼運(yùn)算所遇到的困難,但由于反碼自身也存在一定的缺陷,加之補(bǔ)碼在機(jī)器運(yùn)算中的優(yōu)越表現(xiàn),完全掩蓋了反碼的光芒,以至于現(xiàn)在人們之所以提到反碼,只是因?yàn)樵谟霉P算將真值轉(zhuǎn)換為補(bǔ)碼的時(shí)候,可以快一些——先將原碼轉(zhuǎn)換為反碼,然后反碼加1,就得到了補(bǔ)碼——但是對(duì)于計(jì)算機(jī)來說,反碼這個(gè)中介完全是沒有必要的。

反碼和原碼的關(guān)系很緊密,反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。

同樣我們給出反碼的數(shù)學(xué)表達(dá)式:

[X]反  = X,         0 <= X < 2^(n-1)

[X]反  = 2^n – 1 + X,   -2^(n-1) < X <= 0

 從數(shù)學(xué)表達(dá)式中我們可以發(fā)現(xiàn),整數(shù)的三種機(jī)器碼都是相同的,而負(fù)數(shù)的則不同。負(fù)數(shù)的反碼是對(duì)原碼按位求反(符合位除外),而補(bǔ)碼則等于反碼加1。這樣有了反碼這個(gè)中介,我們即使是用筆算也能夠很快地將原碼轉(zhuǎn)換為補(bǔ)碼了。例如:

[+6]反  = 6, [-6]反  = 2^(8-1) – 1 + (-6) = 255 + 6 = 261,,把261轉(zhuǎn)換為8位二進(jìn)制數(shù),就得到反碼1111 1001。

由于-6的原碼為1000 0110,我們稍作觀察,就可找到反碼和原碼的關(guān)系。

再將反碼加1,就得到-6的補(bǔ)碼1111 1010。

現(xiàn)在明白了吧?

 

附錄:把十進(jìn)制數(shù)轉(zhuǎn)換為機(jī)器碼的C++程序代碼

 

#include <iostream>

using namespace std;

 

const int MAX = 32;

 

void Binary(char b[], int x); //將x轉(zhuǎn)換為二進(jìn)制數(shù)

void TrueForm(char b[], int x); //獲取原碼

void RadixMinus(char b[], int x); //獲取反碼

void Complement(char b[], int x); //獲取補(bǔ)碼

void TruthValue(char b[], int x);//獲取真值

 

int main()

{

      int x = 1;

      char b[MAX+1]={0};

     

      cout << "十進(jìn)制數(shù):" << x << endl;

      TruthValue(b, x);//獲取真值

      cout << "真值:" << b << endl;

     

      TrueForm(b, x); //獲取原碼

      cout << "原碼:" << b << endl;

     

      RadixMinus(b, x);//獲取反碼 

      cout << "反碼:" << b << endl;

     

      Complement(b, x);//獲取補(bǔ)碼

    cout << "補(bǔ)碼:" << b << endl;

   

    cout << "十進(jìn)制數(shù):" << -x << endl;

      TruthValue(b, -x);//獲取真值

      cout << "真值:" << b << endl;

     

      TrueForm(b, -x); //獲取原碼

      cout << "原碼:" << b << endl;

     

      RadixMinus(b, -x);//獲取反碼 

      cout << "反碼:" << b << endl;

     

      Complement(b, -x);//獲取補(bǔ)碼

    cout << "補(bǔ)碼:" << b << endl;

     

    system("pause");

    return 0;

}

 

void Binary(char b[], int x)//將x轉(zhuǎn)換為二進(jìn)制數(shù)

{

    for (int i=MAX-1; i>=0; i--)

    {

           b[i] = (x & 1) + '0';

           x >>= 1;

      }

      b[MAX] = '\0';

}

 

void TrueForm(char b[], int x) //獲取原碼:根據(jù)數(shù)學(xué)表達(dá)式求得

{

    if (x >= 0)

          Binary(b, x);

      else

          Binary(b, (1<<(MAX-1)) - x);

}

 

void RadixMinus(char b[], int x) //獲取反碼:正數(shù)的反碼=補(bǔ)碼;負(fù)數(shù)的反碼=補(bǔ)碼-1

{

    if (x >= 0)

          Binary(b, x);

      else

          Binary(b, x - 1);

}

 

void Complement(char b[], int x) //獲取補(bǔ):數(shù)據(jù)在計(jì)算機(jī)中以補(bǔ)碼形式存儲(chǔ),直接轉(zhuǎn)換即可

{

    Binary(b, x);

}

 

void TruthValue(char b[], int x)//獲取真值:根據(jù)原碼獲得真值

{

    TrueForm(b, x);

      b[0] = (b[0] == '0') ? '+' : '-';  

}

 

參考文獻(xiàn):

(1)Boater的博客:《反碼和補(bǔ)碼技術(shù)是怎樣被提出的?》

http://blog.tianya.cn/blogger/post_show.asp?BlogID=227218&PostID=7046448

(2)北半球的孤獨(dú)發(fā)帖:《關(guān)于機(jī)器數(shù)的幾點(diǎn)注記》

http://forum.noi.cn/thread-29319-1-1.html

 

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/goal00001111/archive/2010/04/15/5490612.aspx

Posted on 2010-04-16 08:41 夢(mèng)想飛揚(yáng) 閱讀(1904) 評(píng)論(2)  編輯 收藏 引用

Feedback

# re: 閑扯原碼,補(bǔ)碼和反碼  回復(fù)  更多評(píng)論   

2010-09-20 11:35 by wangqiulin
能否解釋下那程序的代碼比如那十進(jìn)制轉(zhuǎn)換成二進(jìn)制的函數(shù)
我不是很懂
嘻嘻
謝謝

# re: 閑扯原碼,補(bǔ)碼和反碼  回復(fù)  更多評(píng)論   

2012-03-27 03:56 by 小小
X-QQ-SSF: 0001000000000020000000000000000
X-HAS-ATTACH: no
X-QQ-BUSINESS-ORIGIN: 2
X-Originating-IP: 116.228.158.117
X-QQ-STYLE:
X-QQ-mid: webmail48t1332596745t453944
From: "=?gbk?B?ICAgICAgICCxobrJoaI=?=" <291402550@qq.com>
To: "=?gbk?B?saa2+SAgbG92ZQ==?=" <807074045@qq.com>
Subject: =?gbk?B?u9i4tKO6ztLP1tTayKXE47/VvOS55Lnk?=
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_4F6DD009_080C9160_4A035903"
Content-Transfer-Encoding: 8Bit
Date: Sat, 24 Mar 2012 21:45:45 +0800
X-Priority: 3
Message-ID: <tencent_760FA40C52C727CB5CFD5D1B@qq.com>
X-QQ-MIME: TCMime 1.0 by Tencent
X-Mailer: QQMail 2.x
X-QQ-Mailer: QQMail 2.x
X-QQ-ReplyHash: 3140746782

This is a multi-part message in MIME format.

------=_NextPart_4F6DD009_080C9160_4A035903
Content-Type: text/plain;
charset="gbk"
Content-Transfer-Encoding: base64

udzE48qyw7TKwqGj1NvBqc/W1NrS0b6tt9bK1sHLo6yw3c3QsfC24Lncz9DKwqGjvs3L48Tj
us3LrbTytee7sLa8w7vT0NPDo6yx8NPDxOPEx9XQzf7Qss7SDQogIA0KICAtLS0tLS0tLS0t
LS0tLS0tLS0g1K3KvNPKvP4gLS0tLS0tLS0tLS0tLS0tLS0tDQogILeivP7IyzogIrGmtvkg
bG92ZSAiPDgwNzA3NDA0NUBxcS5jb20+Ow0KILeiy83KsbzkOiAyMDEyxOoz1MIyNMjVKNDH
xtrB+Skgze3Jzzk6NDMNCiDK1bz+yMs6ICIyOTE0MDI1NTAiPDI5MTQwMjU1MEBxcS5jb20+
OyANCiANCiDW98ziOiDO0s/W1NrIpcTjv9W85LnkueQ=

------=_NextPart_4F6DD009_080C9160_4A035903
Content-Type: text/html;
charset="gbk"
Content-Transfer-Encoding: base64

PERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PGluY2x1ZGV0YWlsPg0KPERJVj4mbmJzcDs8L0RJ
Vj4NCjxESVY+udzE48qyw7TKwqGj1NvBqc/W1NrS0b6tt9bK1sHLo6yw3c3QsfC24Lncz9DK
wqGjvs3L48Tjus3LrbTytee7sLa8w7vT0NPDo6yx8NPDxOPEx9XQzf7Qss7SPC9ESVY+DQo8
RElWPiZuYnNwOzwvRElWPg0KPERJViBzdHlsZT0iQ09MT1I6ICMwMDAiPg0KPERJViBzdHls
ZT0iUEFERElORy1SSUdIVDogMHB4OyBQQURESU5HLUxFRlQ6IDBweDsgRk9OVC1TSVpFOiAx
MnB4OyBQQURESU5HLUJPVFRPTTogMnB4OyBQQURESU5HLVRPUDogMnB4OyBGT05ULUZBTUlM
WTogQXJpYWwgTmFycm93Ij4tLS0tLS0tLS0tLS0tLS0tLS0mbmJzcDvUrcq808q8/iZuYnNw
Oy0tLS0tLS0tLS0tLS0tLS0tLTwvRElWPg0KPERJViBzdHlsZT0iUEFERElORy1SSUdIVDog
OHB4OyBQQURESU5HLUxFRlQ6IDhweDsgRk9OVC1TSVpFOiAxMnB4OyBCQUNLR1JPVU5EOiAj
ZWZlZmVmOyBQQURESU5HLUJPVFRPTTogOHB4OyBQQURESU5HLVRPUDogOHB4Ij4NCjxESVYg
aWQ9bWVudV9zZW5kZXI+PEI+t6K8/sjLOjwvQj4mbmJzcDsisaa2+SBsb3ZlICImbHQ7ODA3
MDc0MDQ1QHFxLmNvbSZndDs7PC9ESVY+DQo8RElWPjxCPreiy83KsbzkOjwvQj4mbmJzcDsy
MDEyxOoz1MIyNMjVKNDHxtrB+Skgze3Jzzk6NDM8L0RJVj4NCjxESVY+PEI+ytW8/sjLOjwv
Qj4mbmJzcDsiMjkxNDAyNTUwIiZsdDsyOTE0MDI1NTBAcXEuY29tJmd0OzsgPFdCUj48L0RJ
Vj4NCjxESVY+PC9ESVY+DQo8RElWPjxCPtb3zOI6PC9CPiZuYnNwO87Sz9bU2silxOO/1bzk
ueS55DwvRElWPjwvRElWPjwvRElWPjwvaW5jbHVkZXRhaWw+PC9ESVY+

------=_NextPart_4F6DD009_080C9160_4A035903--

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久毛片软件| 亚洲一区二区欧美日韩| 亚洲免费av观看| 亚洲精品免费在线播放| 亚洲精品综合精品自拍| 一区二区欧美国产| 亚洲欧美日韩精品| 久久久www免费人成黑人精品| 久久男人av资源网站| 亚洲电影视频在线| 9色精品在线| 欧美亚洲色图校园春色| 欧美成人在线免费视频| 欧美日韩午夜在线| 国产视频一区二区在线观看| 亚洲国产精品久久久久秋霞蜜臀| 亚洲日本一区二区| 亚洲欧美综合另类中字| 玖玖在线精品| 99亚洲视频| 美女露胸一区二区三区| 国产精品国产福利国产秒拍| 韩国一区二区三区在线观看| 日韩视频精品| 久久综合九色99| 亚洲精品在线一区二区| 欧美一区二区三区日韩| 欧美日韩精品欧美日韩精品| 精品成人a区在线观看| 中文av一区二区| 欧美.www| 久久久久九九视频| 国产欧美一区二区精品性| 9色精品在线| 农夫在线精品视频免费观看| 亚洲私人影吧| 欧美成人高清| 在线视频国内自拍亚洲视频| 欧美一区二区在线| 亚洲精品偷拍| 蜜臀91精品一区二区三区| 国产乱码精品1区2区3区| 亚洲免费观看高清在线观看 | 国产精品视频在线观看| 亚洲精品国产系列| 久久综合色婷婷| 国产日韩欧美视频| 欧美福利一区| 一区在线播放| 欧美一级视频| 一本一道久久综合狠狠老精东影业| 久久精品国产精品 | 欧美一区日韩一区| 一区二区成人精品| 欧美日韩p片| 亚洲日本va午夜在线影院| 久久精品视频导航| 亚洲一区二区视频| 国产精品欧美久久| 正在播放欧美视频| 欧美国产精品久久| 久久精品72免费观看| 国产乱码精品一区二区三| 亚洲欧美日韩中文视频| 亚洲一区在线免费观看| 国产精品欧美日韩一区二区| 午夜久久影院| 久久久久久久激情视频| 影音先锋中文字幕一区二区| 久久噜噜噜精品国产亚洲综合| 午夜精品视频一区| 国产综合第一页| 免费美女久久99| 久久亚洲视频| 91久久精品国产91久久性色tv| 免费欧美在线视频| 欧美福利视频一区| 亚洲一区二区三区成人在线视频精品| 亚洲精品资源| 国产精品国产自产拍高清av| 久久成人精品视频| 久久久久久久一区二区三区| 亚洲国产91精品在线观看| 亚洲精品午夜精品| 国产精品丝袜白浆摸在线| 久久久精品国产免费观看同学| 久久久久久久久综合| 亚洲精品国产精品乱码不99| 中日韩美女免费视频网站在线观看| 国产欧美一区二区视频| 亚洲国产成人精品女人久久久| 欧美人与禽性xxxxx杂性| 欧美一区影院| 欧美精品网站| 久久精品国产精品亚洲| 欧美成人伊人久久综合网| 亚洲——在线| 久久全国免费视频| 亚洲在线播放| 狂野欧美一区| 先锋影音一区二区三区| 美日韩精品免费| 欧美在线关看| 欧美日韩国产综合一区二区 | 亚洲高清不卡在线| 亚洲欧美国产日韩中文字幕| 欧美一区二区视频网站| 日韩视频免费观看高清在线视频| 亚洲一区二区在线视频| 亚洲黄色免费网站| 中国女人久久久| 在线精品一区| 亚洲激情亚洲| 韩国视频理论视频久久| 99视频精品| 亚洲国产日韩一区二区| 亚洲欧美综合一区| 一本久久a久久精品亚洲| 久久久久久久久岛国免费| 亚洲欧美视频一区| 欧美日韩国产一区二区三区地区| 欧美成人一区在线| 红桃视频国产精品| 欧美有码在线观看视频| 欧美在线999| 国产精品久久二区| 日韩亚洲一区在线播放| 伊人成人在线视频| 亚洲欧美日韩高清| 亚洲你懂的在线视频| 欧美老女人xx| 亚洲国产精品va在线观看黑人| 国产一区二区欧美日韩| 亚洲一区二区动漫| 亚洲欧美日韩在线高清直播| 国产精品扒开腿做爽爽爽软件 | 翔田千里一区二区| 欧美一级免费视频| 国产欧美亚洲视频| 香蕉成人伊视频在线观看| 午夜精品福利一区二区三区av| 国产精品久久999| 一区二区三区精品| 午夜免费日韩视频| 国产欧美日韩激情| 久久精品国产综合精品| 免费成人高清视频| 亚洲三级影院| 欧美日韩高清在线观看| 夜久久久久久| 欧美诱惑福利视频| 1769国产精品| 欧美日韩精品免费 | 一本色道婷婷久久欧美| 亚洲一级影院| 国产专区欧美专区| 欧美成人午夜77777| 亚洲美女淫视频| 欧美在线视频a| 亚洲成色999久久网站| 欧美日韩人人澡狠狠躁视频| 亚洲欧美资源在线| 亚洲第一精品久久忘忧草社区| 一区二区欧美激情| 国产乱人伦精品一区二区| 久久久久久日产精品| 亚洲美女在线一区| 久久只有精品| 午夜亚洲福利| 亚洲精品久久7777| 久久亚洲不卡| 国产亚洲精品bt天堂精选| 久久亚洲免费| 亚洲性人人天天夜夜摸| 欧美+亚洲+精品+三区| 亚洲影院高清在线| 亚洲国产综合91精品麻豆| 国产精品毛片va一区二区三区| 久久一日本道色综合久久| 亚洲性视频h| 亚洲免费观看高清在线观看 | 亚洲精品乱码久久久久久久久| 国产精品国产一区二区| 免费一级欧美在线大片| 亚洲欧美中日韩| 日韩小视频在线观看| 老色鬼精品视频在线观看播放| 亚洲永久精品国产| 99精品视频免费在线观看| **欧美日韩vr在线| 国产有码在线一区二区视频| 欧美视频导航| 欧美日韩国内| 欧美精品一区二区高清在线观看| 欧美自拍偷拍| 久久成人18免费观看| 亚洲一区二区三区涩| 日韩天堂在线观看| 亚洲精品视频二区| 亚洲精品在线看|