欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

Java Math新功能詳解之浮點數

原創|其它|編輯:郝浩|2009-09-01 09:35:01.000|閱讀 627 次

概述:Java? 語言規范第 5 版向 java.lang.Math 和 java.lang.StrictMath 添加了 10 種新方法,Java 6 又添加了 10 種。這個共兩部分的系列文章的第 1 部分介紹了很有意義的新的數學方法。它提供了在還未出現計算機的時代中數學家比較熟悉的函數。在第 2 部分中,我主要關注這樣一些函數,它們的目的是操作浮點數,而不是抽象實數。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

  Java™ 語言規范第 5 版向 java.lang.Math 和 java.lang.StrictMath 添加了 10 種新方法,Java 6 又添加了 10 種。這個共兩部分的系列文章的第 1 部分介紹了很有意義的新的數學方法。它提供了在還未出現計算機的時代中數學家比較熟悉的函數。在第 2 部分中,我主要關注這樣一些函數,它們的目的是操作浮點數,而不是抽象實數。

  就像我在 第 1 部分中 提到的一樣,實數(比如 e 或 0.2)和它的計算機表示(比如 Java double)之間的區別是非常重要的。最理想的數字應該是無限精確的,然而 Java 表示的位數是固定的(float 為 32 位,double 為 64 位)。float 的最大值約為 3.4*1038。這個值還不足以表示某些東西,比如宇宙中的電子數目。

  double 的最大值為 1.8*10308,幾乎能夠表示任何物理量。不過涉及到抽象數學量的計算時,可能超出這些值的范圍。例如,光是 171! (171 * 170 * 169 * 168 * ... * 1) 就超出了 double 最大值。float 只能表示 35! 以內的數字。非常小的數(值接近于 0 的數字)也會帶來麻煩,同時涉及到非常大的數和非常小的數的計算是非常危險的。

  為了處理這個問題,浮點數學 IEEE 754 標準(參見 參考資料)添加了特殊值 Inf 和 NaN,它們分別表示無窮大(Infinity)和非數字(Not a Number)。IEEE 754 還定義了正 0 和負 0(在一般的數學中,0 是不分正負的,但在計算機數學中,它們可以是正的,也可以是負的)。這些值給傳統的原理帶來了混亂。例如,當使用 NaN 時,排中律就不成立了。x == y 或 x != y 都有可能是不正確的。當 x 或 y 為 NaN 時,這兩個式子都不成立。

  除了數字大小問題外,精度是一個更加實際的問題。看看這個常見的循環,將 1.0 相加 10 次之后等到的結果不是 10,而是 9.99999999999998:

  for (double x = 0.0; x <= 10.0; x += 0.1) {
  System.err.println(x);
  }

  對于簡單的應用程序,您通常讓 java.text.DecimalFormat 將最終的輸出格式化為與其值最接近的整數,這樣就可以了。不過,在科學和工程應用方面(您不能確定計算的結果是否為整數),則需要加倍小心。如果需要在特別大的數字之間執行減法以得到較小的數字,則需要萬分 小心。如果以特別小的數字作為除數,也需要加以注意。這些操作能夠將很小的錯誤變成大錯誤,并給現實應用帶來巨大的影響。由有限精度浮點數字引起的很小的舍入錯誤就會嚴重歪曲數學精度計算。

  浮點數和雙精度數字的二進制表示

  由 Java 實現的 IEEE 754 浮點數有 32 位。第一位是符號位,0 表示正,1 表示負。接下來的 8 位表示指數,其值的范圍是 -125 到 +127。最后的 23 位表示尾數(有時稱為有效數字),其值的范圍是 0 到 33,554,431。綜合起來,浮點數是這樣表示的: sign * mantissa * 2 exponent 。

  敏銳的讀者可能已經注意到這些數字有些不對勁。首先,表示指數的 8 位應該是從 -128 到 127,就像帶符號的字節一樣。但是這些指數的偏差是 126,即用不帶符號的值(0 到 255)減去 126 獲得真正的指數(現在是從 -126 到 128)。但是 128 和 -126 是特殊值。當指數都是 1 位(128)時,則表明這個數字是 Inf、-Inf 或 NaN。要確定具體情況,必須查看它的尾數。當指數都是 0 位(-126)時,則表明這個數字是不正常的(稍后將詳細介紹),但是指數仍然是 -125。

  尾數一般是一個 23 位的不帶符號的整數 — 它非常簡單。23 位可以容納 0 到 224-1,即 16,777,215。等一下,我剛才是不是說尾數的范圍是從 0 到 33,554,431?即 225-1。多出的一位是從哪里來的?

  因此,可以通過指數表示第 1 位是什么。如果指數都是 0 位,則第 1 位為 0。否則第 1 位為 1。因為我們通常知道第 1 位是什么,所以沒有必要包含在數字中。您 “免費” 得到一個額外的位。是不是有些離奇?

  尾數的第 1 位為 1 的浮點數是正常的。即尾數的值通常在 1 到 2 之間。尾數的第 1 位為 0 的浮點數是不正常的,盡管指數通常為 -125,但它通常能夠表示更小的數字。

  雙精度數是以類似的方式編碼的,但是它使用 52 位的尾數和 11 位的指數來獲得更高的精度。雙精度數的指數的偏差是 1023。

  尾數和指數

  在 Java 6 中添加的兩個 getExponent() 方法在表示浮點數或雙精度數時返回無偏差 指數。對于浮點數,這個數字的范圍是 -125 到 +127,對于雙精度數,這個數字的范圍是 -1022 到 +1023(Inf 和 NaN 為 +128/+1024)。例如,清單 1 根據更常見的以 2 為底數的對數比較了 getExponent() 方法的結果:

  清單 1. Math.log(x)/Math.log(2) 和 Math.getExponent()

  public class ExponentTest {
  public static void main(String[] args) {
  System.out.println("x\tlg(x)\tMath.getExponent(x)");
  for (int i = -255; i < 256; i++) {
  double x = Math.pow(2, i);
  System.out.println(
  x + "\t" +
  lg(x) + "\t" +
  Math.getExponent(x));
  }
  }
  public static double lg(double x) {
  return Math.log(x)/Math.log(2);
  }
  }

  對于使用舍入的一些值,Math.getExponent() 比一般的計算要準確一些:

  x lg(x) Math.getExponent(x)
  ...
  2.68435456E8 28.0 28
  5.36870912E8 29.000000000000004 29
  1.073741824E9 30.0 30
  2.147483648E9 31.000000000000004 31
  4.294967296E9 32.0 32

  如果要執行大量此類計算,Math.getExponent() 會更快。不過需要注意,它僅適用于計算 2 的冪次方。例如,當改為 3 的冪次方時,結果如下:

  x lg(x) Math.getExponent(x)
  ...
  1.0 0.0 0
  3.0 1.584962500721156 1
  9.0 3.1699250014423126 3
  27.0 4.754887502163469 4
  81.0 6.339850002884625 6

  getExponent() 不處理尾數,尾數由 Math.log() 處理。通過一些步驟,就可以找到尾數、取尾數的對數并將該值添加到指數,但這有些費勁。如果想要快速估計數量級(而不是精確值),Math.getExponent() 是非常有用的。

  與 Math.log() 不同,Math.getExponent() 從不返回 NaN 或 Inf。如果參數為 NaN 或 Inf,則對應的浮點數和雙精度數的結果分別是 128 和 1024。如果參數為 0,則對應的浮點數和雙精度數的結果分別是 -127 和 -1023。如果參數為負數,則數字的指數與該數字的絕對值的指數相同。例如,-8 的指數為 3,這與 8 的指數相同。

  沒有對應的 getMantissa() 方法,但是使用簡單的數學知識就能構造一個:

  public static double getMantissa(double x) {
  int exponent = Math.getExponent(x);
  return x / Math.pow(2, exponent);
  }

  盡管算法不是很明顯,但還是可以通過位屏蔽來查找尾數。要提取位,僅需計算 Double.doubleToLongBits(x) & 0x000FFFFFFFFFFFFFL。不過,隨后則需要考慮正常數字中多出的 1 位,然后再轉換回范圍在 1 到 2 之間的浮點數。

  最小的精度單位

  實數是非常密集的。任意兩個不同的實數中間都可以出現其他實數。但浮點數則不是這樣。對于浮點數和雙精度數,也存在下一個浮點數;連續的浮點數和雙精度數之間存在最小的有限距離。nextUp() 方法返回比第一個參數大的最近浮點數。例如,清單 2 打印出所有在 1.0 和 2.0 之間的浮點數:

  清單 2. 計算浮點數數量

  public class FloatCounter {
  public static void main(String[] args) {
  float x = 1.0F;
  int numFloats = 0;
  while (x <= 2.0) {
  numFloats++;
  System.out.println(x);
  x = Math.nextUp(x);
  }
  System.out.println(numFloats);
  }
  }

  結果是 1.0 和 2.0 之間包含 8,388,609 個浮點數;雖然很多,但還不至于是無窮多的實數。相鄰數字的距離為 0.0000001。這個距離稱為 ULP,它是最小精度單位(unit of least precision) 或最后位置單位(unit in the last place)的縮略。

  如果需要向后查找小于指定數字的最近浮點數,則可以改用 nextAfter() 方法。第二個參數指定是否查找在第一個參數之上或之下的最近數字:

  public static double nextAfter(float start, float direction)
  public static double nextAfter(double start, double direction)

  如果 direction 大于 start,則 nextAfter() 返回在 start 之上的下一個數字。如果 direction 小于 start,則 nextAfter() 返回在 start 之下的下一個數字。如果 direction 等于 start,則 nextAfter() 返回 start 本身。

  這些方法在某些建模或圖形工具中是非常有用的。從數字上來說,您可能需要在 a 和 b 之間的 10,000 個位置上提取樣例值,但如果您具備的精度僅能識別 a 和 b 之間的 1,000 個獨立的點,那么有十分之九的工作是重復的。您可以只做十分之一的工作,但又獲得相同的結果。

  當然,如果一定需要額外的精度,則可以選擇具有高精度的數據類型,比如 double 或 BigDecimal。例如,我曾經在 Mandelbrot 集合管理器看見過這種情況。在其中可以放大曲線圖,讓其落在最近的兩個雙精度數之間。Mandelbrot 集合在各個級別上都是非常細微和復雜的,但是 float 或 double 可以在失去區分相鄰點的能力之前達到這個細微的級別。

  Math.ulp() 返回一個數字和距其最近的數字之間的距離。清單 3 列出了 2 的各種冪次方的 ULP:

  清單 3. 浮點數 2 的冪次方的 ULP

  public class UlpPrinter {
  public static void main(String[] args) {
  for (float x = 1.0f; x <= Float.MAX_VALUE; x *= 2.0f) {
  System.out.println(Math.getExponent(x) + "\t" + x + "\t" + Math.ulp(x));
  }
  }
  }

  下面給出了一些輸出:

  0 1.0 1.1920929E-7
  1 2.0 2.3841858E-7
  2 4.0 4.7683716E-7
  3 8.0 9.536743E-7
  4 16.0 1.9073486E-6
  ...
  20 1048576.0 0.125
  21 2097152.0 0.25
  22 4194304.0 0.5
  23 8388608.0 1.0
  24 1.6777216E7 2.0
  25 3.3554432E7 4.0
  ...
  125 4.2535296E37 5.0706024E30
  126 8.507059E37 1.0141205E31
  127 1.7014118E38 2.028241E31

  可以看到,對于比較小的 2 的冪次方,浮點數是非常精確的。但是在許多應用程序中,在數值約為 220 時,這一精度將出現問題。在接近浮點數的最大極限時,相鄰的值將被 千的七乘方(sextillions)隔開(事實上可能更大一點,但我找不到詞匯來表達)。

  如清單 3 所示,ULP 的大小并不是固定的。隨著數字變大,它們之間的浮點數就會越來越少。例如,10,000 和 10,001 之間只有 1,025 個浮點數;它們的距離是 0.001。在 1,000,000 和 1,000,001 之間僅有 17 個浮點數,它們的距離是 0.05。精度與數量級成反比關系。對于浮點數 10,000,000,ULP 的精確度變為 1.0,超過這個數之后,將有多個整數值映射到同一個浮點數。對于雙精度數,只有達到 4.5E15 時才會出現這種情況,但這也是個問題。

  浮點數的有限精度會導致一個難以預料的結果:超過某個點時,x+1 == x 便是真的。例如,下面這個簡單的循環實際上是無限的:

  for (float x = 16777213f; x < 16777218f; x += 1.0f) {
  System.out.println(x);
  }

  實際上,這個循環將在一個固定的點上停下來,準確的數字是 16,777,216。這個數字等于 224,在這個點上,ULP 比增量大。

  Math.ulp() 為測試提供一個實用的用途。很明顯,我們一般不會比較兩個浮點數是否完全相等。相反,我們檢查它們是否在一定的容錯范圍內相等。例如,在 JUnit 中,像以下這樣比較預期的實際浮點值:

  assertEquals(expectedValue, actualValue, 0.02);

  這表明實際值與預期值的偏差在 0.02 之內。但是,0.02 是合理的容錯范圍嗎?如果預期值是 10.5 或 -107.82,則 0.02 是完全可以接受的。但當預期值為幾十億時,0.02 則與 0 沒有什么區別。通常,就 ULP 進行測試時考慮的是相對錯誤。一般選擇的容錯范圍在 1 至 10 ULP 之間,具體情況取決于計算所需的精度。例如,下面指定實際結果必須在真實值的 5 個 ULP 之內:

  assertEquals(expectedValue, actualValue, 5*Math.ulp(expectedValue));

  根據期望值不同,這個值可以是萬億分之一,也可以是數百萬。

  scalb

  Math.scalb(x, y) 用 2y 乘以 x,scalb 是 “scale binary(二進法)&rdquo; 的縮寫。

  public static double scalb(float f, int scaleFactor)
  public static double scalb(double d, int scaleFactor)

  例如,Math.scalb(3, 4) 返回 3 * 24,即 3*16,結果是 48.0。也可以使用 Math.scalb() 來實現 getMantissa():

  public static double getMantissa(double x) {
  int exponent = Math.getExponent(x);
  return x / Math.scalb(1.0, exponent);
  }

  Math.scalb() 和 x*Math.pow(2, scaleFactor) 的區別是什么?實際上,最終的結果是一樣的。任何輸入返回的值都是完全一樣的。不過,性能方面則存在差別。Math.pow() 的性能是非常糟糕的。它必須能夠真正處理一些非常少見的情況,比如對 3.14 采用冪 -0.078。對于小的整數冪,比如 2 和 3(或以 2 為基數,這比較特殊),通常會選擇完全錯誤的算法。

  我擔心這會對總體性能產生影響。一些編譯器和 VM 的智能程度比較高。一些優化器會將 x*Math.pow(2, y) 識別為特殊情況并將其轉換為 Math.scalb(x, y) 或類似的東西。因此性能上的影響體現不出來。不過,我敢保證有些 VM 是沒有這么智能的。例如,使用 Apple 的 Java 6 VM 進行測試時,Math.scalb() 幾乎總是比 x*Math.pow(2, y) 快兩個數量級。當然,這通常不會造成影響。但是在特殊情況下,比如執行數百萬次求冪運算時,則需要考慮能否轉換它們以使用 Math.scalb()。

  Copysign

  Math.copySign() 方法將第一個參數的標記設置為第二個參數的標記。最簡單的實現如清單 4 所示:

  清單 4. 可能實現的 copysign 算法

  public static double copySign(double magnitude, double sign) {
  if (magnitude == 0.0) return 0.0;
  else if (sign < 0) {
  if (magnitude < 0) return magnitude;
  else return -magnitude;
  }
  else if (sign > 0) {
  if (magnitude < 0) return -magnitude;
  else return magnitude;
  }
  return magnitude;
  }

  不過,真正的實現如清單 5 所示:

  清單 5. 來自 sun.misc.FpUtils 的真正算法

  public static double rawCopySign(double magnitude, double sign) {
  return Double.longBitsToDouble((Double.doubleToRawLongBits(sign) &
  (DoubleConsts.SIGN_BIT_MASK)) |
  (Double.doubleToRawLongBits(magnitude) &
  (DoubleConsts.EXP_BIT_MASK |
  DoubleConsts.SIGNIF_BIT_MASK)));
  }

  仔細觀察這些位就會看到,NaN 標記被視為正的。嚴格來說,Math.copySign() 并不對此提供保證,而是由 StrictMath.copySign() 負責,但在現實中,它們都調用相同的位處理代碼。

  清單 5 可能會比清單 4 快一些,但它的主要目的是正確處理負 0。Math.copySign(10, -0.0) 返回 -10,而 Math.copySign(10, 0.0) 返回 10.0。清單 4 中最簡單形式的算法在兩種情況中都返回 10.0。當執行敏感的操作時,比如用極小的負雙精度數除以極大的正雙精度數,就可能出現負 0。例如,-1.0E-147/2.1E189 返回負 0,而 1.0E-147/2.1E189 返回正 0。不過,使用 == 比較這兩個值時,它們是相等的。因此,如果要區分它們,必須使用 Math.copySign(10, -0.0) 或 Math.signum()(調用 Math.copySign(10, -0.0))來執行比較。

  對數和指數

  指數函數是一個很好的例子,它表明處理有限精度浮點數(而不是無限精度實數)時是需要非常小心的。在很多等式中都出現 e x(Math.exp())。例如,它可用于定義 cosh 函數,這已經在 第 1 部分中 討論:

  cosh(x) = (e x + e -x)/2

  不過,對于負值的 x,一般是 -4 以下的數字,用于計算 Math.exp() 的算法表現很差,并且容易出現舍入錯誤。使用另一個算法計算 e x - 1 會更加精確,然后在最終結果上加 1。Math.expm1() 能夠實現這個不同的算法(m1 表示 “減 1”)。例如,清單 6 給出的 cosh 函數根據 x 的大小在兩個算法之間進行切換:

  清單 6. cosh 函數

  public static double cosh(double x) {
  if (x < 0) x = -x;
  double term1 = Math.exp(x);
  double term2 = Math.expm1(-x) + 1;
  return (term1 + term2)/2;
  }

  這個例子有些呆板,因為在 Math.exp() 與 Math.expm1() + 1 之間的差別很明顯的情況下,常常使用 e x,而不是 e -x。不過,Math.expm1() 在帶有多種利率的金融計算中是非常實用的,比如短期國庫券的日利率。

  Math.log1p() 與 Math.expm1() 剛好相反,就像 Math.log() 與 Math.exp() 的關系一樣。它計算 1 的對數和參數(1p 表示 “加 1”)。在值接近 1 的數字中使用這個函數。例如,應該使用它計算 Math.log1p(0.0002),而不是 Math.log(1.0002)。

  現在舉一個例子,假設您需要知道在日利率為 0.03 的情況下,需要多少天投資才能使 $1,000 增長到 $1,100。清單 7 完成了這個計算任務:

  清單 7. 計算從當前投資額增長到未來特定值所需的時間

  public static double calculateNumberOfPeriods(
  double presentValue, double futureValue, double rate) {
  return (Math.log(futureValue) - Math.log(presentValue))/Math.log1p(rate);
  }

  在這個例子中,1p 的含義是很容易理解的,因為在計算類似數據的一般公式中通常出現 1+r。換句話說,盡管投資方很希望獲得初始投資成本的 (1+r) n ,貸方通常將利率作為附加的百分比(+r 部分)。實際上,以 3% 的利率貸款的投資者如果僅能取回投資成本的 3% 的話,那就非常糟糕了。

  結束語

  浮點數并不是實數。它們的數量是有限的。它們能夠表示最大和最小的值。更值得注意的是,它們的精度雖然很高,但范圍很窄,并且容易出現舍入錯誤。相反,浮點數和雙精度數處理整數時獲得的精度遠比整型數和長型數差。您必須仔細考慮這些限制,尤其是在科研和工程應用方面,以生產出健壯、可靠的代碼。對于財務應用程序(尤其是需要精確到最后一位的會計應用程序),處理浮點數和雙精度數時也需要格外小心。

  java.lang.Math 和 java.lang.StrictMath 類經過了精心設計,可以解決這些問題。適當地使用這些類及其包含的方法能夠改善程序。本文特別展示了良好的浮點算法有多么巧妙!最好使用專家提供的算法,而不是自己獨創算法。如果適合使用 java.lang.Math 和 java.lang.StrictMath 中提供的方法,最好繼續使用。它們通常是最佳的選擇。


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:IT專家網

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产精品va在线观看蜜臀 | 国产精品视频大陆免费播放 | 日本成a | 女人脱精光一清二楚图片 | 乱伦三级高清精 | 亚洲日韩一页精品发布 | 日本一区二区三区四区视频 | 2025精品国夜夜天天拍拍 | 韩国理伦电影午夜三级 | 国产精品喷潮在线观看 | 国产91丝袜在线播放动漫蜜月 | 午夜人成影视免费 | 91tv官网精品观看 | 亚洲精品永久在线观看 | 国产欧美日韩夜夜爽人人 | 国产最新一区二区三区天堂 | 亚欧成人中文字 | 在线亚洲欧美日韩每日更新 | 免费人成在线观看vr网站 | 国产日韩一区二区三区在线观看 | 精品免费国产一区二区三 | 99热这里只有精品免费播放 | 又粗又大又黄又硬高清视频 | 国产精品成人亚发布 | 精品国产午夜福利不卡在 | 福利100合集在线播放 | 国产一区二区三区激情四射 | 国产农村一| 国产精品1区2区3区在线播放 | 欧美日精品一区二区在线观看 | 成人午夜爽 | 亚洲日本中文字幕天堂网 | 亚洲精品字幕在线观看 | 国产午夜成福利在线观看 | 欧美激情一区二 | 免费人成激情视频在线观看冫 | 亚洲最稳定资源在线观看 | 亚洲精品国产美女在线观看 | 777国产偷窥盗摄精品1 | 色男人在线电影视频网站 | 免费永久在线观看污污的网站 | 学生精品国自产拍中文 | 欧美日韩深夜视频在线观看 | 国产一区二区三精品久 | 韩国a级特黄特 | 中文字幕亚洲精品第1页 | 87国产私拍福利精品视频 | 日本电影中文字幕 | 日本午夜免费理论片 | 国产精品香蕉在线观看 | 手机国产乱子伦精品视频 | 亚洲欧美日韩一区中文字幕 | 天黑黑影院免费观看视频在线播放 | 国产又粗又猛又 | 好吊妞国产欧美日韩免费观看 | 国产午夜福利电影免费在线观看 | 亚洲综合一区二区三区四区五区 | 园内精品自拍视频在线播放 | 成人午夜看片在线观看 | 日本护士毛茸茸xx | 永久免费影院 | 午夜福利一区二区三区在 | 奶水国产在线播放 | 加勒比he | 少女哔哩 | 黑巨茎大战俄罗斯美 | 国产亚洲精品ae86 | 日韩经典视频 | 国产亚洲欧美日韩精品一区二区 | 夜夜未满十八勿进的爽爽影院 | a级全黄试看30分钟国产 | 成年女性特黄午夜视频免费看 | 又湿又紧又大又爽a视频国产 | 亚洲国产精品自在拍在线播放蜜臀 | 性生大片免费观看网站 | 娇妻被交换粗又大又硬彩 | 亚欧免费大片在线观看 | 国产在线高清精品1314 | 私人电影官网 | 国产丰满 | 乱子xxxxvideos| 日韩中文在线视频 | 中文字幕在线观看网址 | 国产爽片大全免费在线观看 | 亚洲天天做日日做天天谢日日欢 | 成人日韩在线视频观看 | 热播韩剧网 | 日本高清va在线播放 | 亚洲国产欧美在线人网站 | 国产在线精品免费一区二区三区 | 国产系列丝袜熟女精品视频 | 俺去啦不卡| 日韩伦理电影中文在线 | 国产3级在线观看 | 亚洲自偷自拍另类第1页 | 日韩精品在线看 | 日本精品 | 亚洲欧美在线不卡 | xxxx自由视频| 日本一区二区三区视频在线 | 亚洲视频一区二区三区四区 | 欧美一级中文字幕免费在线 | 国产欧美精品国产国产专区 | 欧美三级韩国三级日本三斤 | 综合网www| yw193尤物视频 | 国产二代与美女酒店在线播放 | 美女大黄三级视频在线观看 | 精品一区二区五 | 三级视频网 | 好看的电视剧免 | 国产精品午夜福利在线观看地址 | 51精品免费视频国 | 性一交一乱一伦一 | 国产午夜鲁丝片a | 国产午夜男女爽爽爽爽爽视频 | 欧美日韩亚洲国产综合在线观 | 欧美偷窥清纯综合图区 | 国产精品自在拍一区二区不卡 | 在线亚洲一区二区三区四区 | 天美麻花果冻 | 高清欧美性猛交xxxx黑人猛交 | 国产一级特黄aaa大片在线观 | 免费一看一级 | 老太xxxx下面毛茸茸 | 超级碰97直线国产免费公开 | 91福利国产极品美女在线观看 | 国产免费202 | 国内自拍亚洲 | 成人一区免费观看 | 91精品国产品国语在线 | 国产香蕉国产精品偷在线观看 | 中文字幕乱 | 日本中文字幕一区二区有码 | 成人精品一区二区三区免费观看 | 国产精品99精品 | 尤物视频免费观看 | 精品福利一区二区在线观看 | 欧美一级高清片国产特黄大 | 经典影片免费在线观看 | 精品国产福利在线观看网站 | 丁香九月月小说图片区 | 视频在线播放在线观看 | 国产一区二区四五区在线视频 | 国产欧洲野花a级 | 日韩电影网| 夜夜揉揉日 | 美女午夜剧场 | 成人亚洲综合 | 亚洲午夜视频在线观看 | 国产免费爽爽视频在线观看 | 国产综合成人色产三 | 偷国内自拍视频在线观看 | 在线日本有码中文字幕 | 五月天婷五月天 | 激情文学综合区图片区小说区 | 亚洲中文字幕第一页在线 | 日本视频网站在线w | 激情深爱五月开心婷婷综合 | 啦啦啦ww| 精品亚洲日韩国产一二三区 | 国产拍偷精品网最新在线观 | 国产精品视频国产永久视频 | 91精品国产一区二区三区左线 | 91视频网 | 日韩在线观看 | 日韩精品一| 丰满岳乱妇一区二区三区 | 亚洲精品一区国产 | 亚洲欧美日韩另类丝袜一区 | 精品国产免费一区二区三区香 | 日本精品电影一区二区三区 | 韩国午夜理伦三级理论在线观看 | 写真福利理论片在线播放 | 尤物国产精品福利三区 | 国产精品爽爽va在线 | 国产va免费精品高清在线 | 8x8×拨牐拨 国产suv精品一区二区6 | 国精品日韩欧美一区二区三区 | 10000部拍拍拍免费视频 | 在线亚洲一区二区 | 国产群p视频在线观看 | 日本三级手机在线播放线观看 | 99精品福利国产精品一区 | 曰本还a大片免费视频 | 欧美综合图区亚洲综自拍 | 国产宅男z资 | 亚洲国产美国国产综合一区 | 国产一级a爱做片天天 | 国产在线视频自拍 | 自制国产2025福利看片 | 91精品国产福利在线观看 | 亚洲国产在人线播放 | 中文字幕一区二区三区精彩视频 | 欧美高清一区二区三区不卡视频 | 日本三级韩国三级三级a级按 | 欧美日韩国产一区二区三区在线 | 国产在线成观看视频播放 | 精品国产aⅴ一区天美传媒 开心五月丁香花综合网 | 给我免费的视频在 | 噼里啪啦国语在线观看高清资源 | 日本高清一| 成年奭片免费观看 | 国产女主播精品大秀系列 | 西西人体ww | 国内成人免费视频 | 久青草国产97香蕉 | 免费无毒片在线观看 | 一级女性全黄生活片免费 | 国产免费一级高清 | 亚洲经典一区二区三区爱妃记歌词 | 欧美日韩国产这里只有精品 | 亚洲视频欧美视频在线视频 | 日韩精品福利 | 国产专区在线播放 | 亚洲aⅴ精品国产首次亮相 国产炮机主播在线观看 | 东日韩二三区 | 片免费在线| 日本一卡2卡3卡无卡免费 | 日韩亚洲欧美国产精品综合 | 国产精品青草综合久 | 欧美日韩国产亚洲 | 在线午夜看片福利深夜导航 | 日本免费| 亚洲最大的情人在线 | 无色码中文字幕亚洲精品 | 午夜影视网 | 亚洲日韩aⅴ在线视频 | 欧美在线+在线播放 | 2025在线精品自 | 亚洲视频在线 | 策驰影院| 精品影院| 2025亚洲国产成a在线 | 99在线观看视频免费精品9 | 亚洲欧美乱日韩乱国产 | 好看的电视剧全集免费在线观看 | 五月社区免费 | 国产一区日韩二区欧美三区 | 午夜美女视频在线 | 全视频tv| 性欧美极品xxxx欧美 | 全部视频欧美日韩在线无人 | 日本aⅴ中文免费观看 | 亚洲视频日 | 青青青国产在线观看资源 | 视频在线一区二区三区 | 免费午夜一级高清免费看 | 国产福利小视频在线免费观看 | 区二区视频免费看 | 欧美性爱另类丝袜一二三区 | 国产在线视频不卡一区二区 | 在线日韩欧美视频一区二区 | 野花高清在线 | 日本不卡在线观看 | 亚洲在在线观看免费视频 | 日本一区二区三区免费在线观看 | 国产精品日韩专区第一页 | 国产精品一区二区在线观看网站 | 欧美手机手机在线视频一区 | 欧美日韩精品中文字幕 | www.99精品| 国产丝袜| 国产精品自在线午夜福利高 | 欧美午夜成午夜成年片在线观看 | 又粗又硬又大又黄又爽的免 | 国内美女91福利在线观看 | 91香蕉小视频 | 日韩伦理一区二区三区 | 手机大看福利永久国产 | 精品免费看一区二区三区 | 欧美日韩中文国 | 大地资源高清日本 | 真实国产乱子伦对白在线 | 日韩国产在线观看 | 日干夜干 | 欧美一级成人免费大片 | 99re8这里有精品热视频 | 91成人精品爽啪在 | 性色xxxxhd天美传媒 | 国产末成年女噜噜 | 亚洲国产欧美日韩精品 | 在线中文字幕日韩 | 欧美午夜不卡在线观看最新 | 国产极品在线 | 中文字幕国产在线观看 | 中国领先的综合视频网站 | 曰日夜夜 | 国产日产欧产精品精品 | 日日精品国产高清国产专区 | 天天澡日日澡狠狠欧美老妇 | 日本毛x片免费视频观看视频 | 青草第一视| 国产精品偷伦视频免费观看 | 日韩国产一区二区三区在线 | 在线永久在线 | 手机香蕉国产在线 | 视频一区二区三区在线看 | 国产精品自产拍 | 国产精品亚洲片夜色在线 | 成人α片免费视频在线观看 | 国产日韩一区在线精品 | 福利在线免费 | 欧美日韩精品一区二区另类 | 亚洲欧美日韩高清一区 | 女人一区二区视频免费 | 色五月丁香色 | 又大又硬一进一出做视频 | 91九色蝌蚪熟女 | 国产精品韩国一区二区三区 | 日本精品中文字幕 | 人人草在线观看 | 亚洲人成电影院在线观看 | 日韩亚洲成a人片在线观看 国产日产成人免费视频在线观看 | 欧美日韩一区二区在线 | 欧美亚洲国产经典 | 国产亚州视频在线八a | 国产毛多 | 91精品国产福利在线观看麻 | 欧美高清一级 | 美女视频 | 最新版本直播app | 久在线精品视频线观看 | 欧美重口另类在线播放二区 | 国产精品极品美女自在线观看免费 | 日韩精品大片在线观看 | 高清在线一区 | 熟女一区二区 | 国自产拍偷拍福利精品免费 | 伊人www22| 国产一区视频在线观看免费 | 银杏视频推广下载入口 | 热门电视剧追剧网站 | 中文字幕亚洲无线码一区女同 | 亚洲精品亚洲字幕 | 亚洲午夜视频在线 | 日本三级a∨在线观看 | a视频乱| 伦理片97影视网 | 在线观看中文字幕2025 | 日韩精品在线视频一区二区三区 | 91精品成人影院 | 色妺妺视频网 | 日本欧美中文幕 | 亚洲mv大片欧洲mv大片入口 | 国产三j | 色偷偷国色天香在线观看免费视频 | 日本不卡一区 | 欧美高清性色生活片 | 性午夜视频在线观看 | 精品国内自产拍在线观看 | 综合亚洲精品 | 欧洲精品免费高清在线视频 | 国产性爱在线 | 亚洲日本欧美日韩中文字幕 | 一区二区三区免费高清视频 | 在线永久观看国产精品电影 | 中文在线а | 不卡一区二区 | 欧美一区二区三区播放 | 日韩经典一区 | 2025中文字幕在线观看 | 91精品欧 | 日韩在线播放中文字幕 | 国产精品专区第5页 | 国产在线观看高 | 国产偷国产偷亚洲高清日韩 | 秋霞电影院yy2933 | 九九热在线视频观看这里只有精品 | 久产久精九国品在线 | 亚洲一区二区在线免费观看 | 午夜福利理论片在线观看 | 亚洲japanese| 精品在线看 | 亚洲天堂在线视频观看 | 蜜桃臀aⅴ精品一 | 蜜臀精品一区二区三区在线观看 | 国产精品一线天在线观看 | 亚洲精品国产第一区二区尤物 | 国产精品亚 | 欧美特黄一级大黄录像 | 亚洲国产精品综合小说图片区 | 视频一区视频二区在线观看 | 亚洲国产欧美日韩一区二区在线 | 欧美性爱在 | 97伦理电影在线不卡 | 国产人免费视频成69 | 精品一区二区三区中文字幕 | 国产高清视频免费在线观看 | 欧美日韩国语aⅴ视频网站 国产高清自偷自 | 欧美人牲 | 日本最新高清不卡一区二区 | 中文字幕一精品亚洲无线一区 | 亚洲日本一区二区三区在线 | 日本爽爽爽爽爽爽在线观看免 | 国产精品成人自拍在线观看 | 免费国产一区二区三区 | 亚洲国产综合精品中久 | 午夜免费观看福利片 | 亚洲人精品 | 欧美性狂猛xx | 岛国大片网站在线观看 | 日韩国产精品一区二区 | 区三区放荡人妇 | 97碰碰碰成年免费视频s | 亚洲欧美国产精品制服 | 军训完被教官灌满精子男男 | 肉色超薄丝袜脚交一区二区 | 亚洲国产日韩在线人高清 | 国产人妖在线 | 午夜理论片在线观看免费 | 内地级a艳片高清免费播放 五月社区免费 | bt在线天堂中文最新版 | 99成人国产精品视频 | 欧美丰满妇大ass | 成人亚欧网站 | 中文字幕第一页在线观 | 国内精品视频成人一区 | 99国精品午夜 | 亚洲欧美国产精品制服 | 亚洲男人的 | 精品精品国产欧美在线观看 | 亚洲人成依人成综合网 | 亚洲熟女午夜福利 | 欧美黑人又大又粗xxxxx | 91同城快聘 | 老司机在线精品视频播放 | 欧美a免费 | 国产高清精品一区 | 伊人国产在线视频 | 国产欧洲青草依依 | 欧美中日韩免费观 | 欧美性videos高清 | 日本中文字幕乱码 | 60分钟床色大片在线观看免费 | 2025免费高清电影大全 | 免费精品 | 色豆豆永| 亚洲一区制服丝袜 | 国内激情视频 | 美女视频黄频a | 最近中文字幕无吗高清免费视频 | 国产精品自在线拍国产 | 日韩精品视频一区二区三区 | 国产精品视频一 | 国产又黄又爽视频免费观 | 欧美性大战xxxx | 欧美亚日韩国产aⅴ精品中极品 | 亚洲国产精品 | 夫妇交换性3中文字 | 日本黄页网 | 国产精品乱码一区二区三区 | 国产日韩精品一区在线观看 | 国产资源一区 | 日本中文字幕乱码aa高清电影 | 色欧美亚洲欧 | 亚洲精品国产第一区第二区国 | 亚洲无线观看国产超清 | 日本三级在线视频 | 亚洲一级大片 | 91精品国产一区蜜桃 | 日韩精品午夜视频一区二区三区 | 日本一二三本道 | 伊人久色 | 亚洲精品成人区在线观看 | 日韩精品电影一区 | 欧美日韩国产色 | 亚洲一区二区三区免费视频 | 亚洲午夜私人影院 | 91xxx在线观看 | 甜性涩爱 | 18videosex性欧美黑色 | 最新电视剧免费观看 | 国产精品人一成在线观看 | 精美日产| 午夜激情视频 | 亚洲裸男gv| 字在线观看一二区 | 2025国产 | 亚洲一区二区三 | 中文字幕精品一区二区日本大胸 | 日韩一区二区三区自拍偷拍 | 日本三级韩国三级三级a级按 | 日韩精品美女视频 | 午夜一区一品日本 | 天天被干免费观看视频 | 2025最新在线观影网站 | 欧美乱妇日本无乱码特黄大片 | 国产日韩在线亚洲字幕中文 | 国产日本韩国 | 床震吃胸膜奶免费视频 | 插我一区二区在线观看 | 国产亚洲欧美一区二区三区 | 国内一区二区三区在线观看 | 综合色区在线观看 | 牛牛影视在线精品一区二区 | 真实国产乱子伦 | 国产一级一级一级国产片 | 精品国产日韩一区三区 | 国产又色又爽又黄又刺激的网站 | 欧美日韩国产中文精品字幕 | 91高清国 | 二区不卡 | 免费人成年激情视频在线观看 | 成人免费一区二区三区视频 | 偷国产偷精品高清尤物 | 午夜伦理电影网电影午夜伦理 | 欧美视频人人干人人 | 综合激情五 | 精品日韩欧美一区二区在线播放 | 国产性色 | 免费观看又黄又硬又爽的视频 | 国产精品538 | 国产农村妇女特 | 国产精品边叫边喷水 | 99精品国产自产在线观看 | 精品一区二区三区夜夜嗨 | 国产精品+日 | 99精品一区二区三区 | 永久在线观看免费视频 | 欧美日韩国产精品 | 天堂网www中文天堂在线 | 欧美激情国产日韩 | 精品国产综合成人亚洲区 | 91精品国产自产老师啪 | 国产精品视频 | 国产吹潮在线观看中文 | 成人精品一区二区户外 | 99国精产品在线视频 | 亚洲日本欧美日韩高观看 | 日本欧美三级成人精品 | 小明欧美精品视频在线观看 | 国产一级a毛一级a看免费视频 | 国内欧美日韩在线 | 成人国产一区二区三区精 | 亚洲日韩精品免费视频91蜜桃 | 国自产精品手机在线观看视 | 五月天婷婷网亚洲综合在线 | 亚洲男同gv在线观看 | 国产极品翘臀在线观 | 真实国产乱子伦 | 91精品欧美激情在线播放 | 亚洲精品美女在线观看 | 国产欧美在线一区二区三区 | 在线播放亚洲综合 | a天堂中文在线天堂资源中文 | 中文字幕日韩专区下载 | 日韩精品中文字幕一区二区三区 | 经典三级欧美 | 日韩欧美色综合网站免费 | 中文字幕人成乱码熟女69 | 国产人成网在 | 国产秘精品入口免费软件 | 日韩a在线 | 91精品一区二区三区在线播放 | 五月桃花网婷婷亚洲综合 | 精品视频一区二区三 | 日韩国产欧美在线观 | 欧美日韩成人午夜电影 | 在线电影电视剧动漫综艺免费观看 | 日本国产欧美精品在 | 亚洲欧美综合另类 | 欧美日韩国产综合一区精 | 日韩女同精品一区二 | 国产精品亚洲综合天堂夜夜 | 亚洲国产美国国产综合一区 | 香港午夜三级a三级高清观看 | 日韩视频中文字幕视频一 | 在线观看亚洲国产手机精品 | 在线日韩不 | 美女福利亚洲视频 | 日韩精品视频欧美国产 | 亚洲日本在线播放视频 | 57pao视频国产在线观看 | 宅男色影视亚洲人在线 | 免费人成在线观看网站体验站 | 亚洲欧美日韩人兽免费 | 97久视 | 国产精品一区成人精品果冻传媒 | 日本三级韩国三级香港三级a级 | 99精品欧美 | 国产精品91在 | 美国十次了 | 欧美性色欧美a在线播放 | 亚洲一区二区观看播放 | 岛国一区 | 国产精品综合一区二区 | 强开女学生的小嫩苞 | 国产99视频精品免费观看6 | 国产一区二区三区正品 | 黑人巨大精品欧美一区二区在线 | 国产欧美日韩另类精彩视频 | 国产日韩一区在线精品 | 91精品国产品国语在线不卡 | 三年片观看免费观看大全 | 天美麻花果冻 | 国产极品翘臀在线观 | 亚洲区中文 | 欧洲精品不卡1卡2卡三卡 | 福利免费0948视频 | 国产一区二区亚洲一区二区 | 97中文人| 美女aⅴ高清电影在线观看 国产一区二区三区免费在线 | 日本一区二区三区免费乱视频 | 高清欧美性猛 | 精品国产福利在线观看91啪 | 九七电影网 | 免费无毒a网站在线观看 | 国产精品日韩亚洲一区二区 | 芙宁娜裸身被羞羞漫画 | 日本hs在线播放观看 | 海量热播电视剧手机电影在线观看 | 日韩欧美大片精品黄 | 亚洲欧美中 | 性猛交╳xxx乱大交 欧美午夜理伦三级在线 | 在线鲁鲁视频免费观看 | 免费a级伦费影视在线观看 国产91精品露脸国语对白 | 2025国产精品极品色在线 | 传媒视频免费在线 | 日韩成人国产精品视频 | 国产乱码精 | 欧美成亚洲 | 日本免费一区二区视频 | 精品一区二区三区中文字幕 | 中文字幕精 | 国产精品自在拍一区二区不卡 | 精品国精品国产自在 | 办公室系列欧美精品 | 97人人超| 国产伦精品一区二区三区在 | 免费在线观看国内色片网站网址 | 国产高清片 | 日本一区二区三区免费在线观看 | 欧美日韩国产中文精品字幕 | 精品亚洲国产 | 91看片淫黄大片欧美看国产片 | 国产系列丝袜熟女精品网站 | 国产色秀视频在线播放 | 亚洲精品亚洲人成在线 | 日本免费一区二区在线看片 | 免费在线中文字幕 | 免费看片黄 | 国产美女 | 夜爽夜夜网 | 国产大片黄在线观看 | 亚洲欧洲淘宝天堂日本 | 日本在线高清不卡免费播放 | 国产日韩制服丝袜在线第一页 | 视频精品| 亚洲精品分类在看在 | 欧美一区二区激情视频在线播放 | 2025国产拍偷精品网 | 成人欧美精品资源在线观看 | 国产美女嘘嘘嘘嘘嘘视频 | 国产91尤物在线观看互 | 国产午夜福利精品一区 | 男女猛烈xx00免费视频试看 | 日本精高清区一 | 国产高清精品一 | 网曝精品视频在线 | 国内精品日本和韩国免费不卡 | 成人三级视频在线观看 | 三级在线国产 | 中文字幕在线观看国产 | 国产日产高清欧美一区二区三区 | 日韩欧美在线观看一区 | 精品一区二区三区在线 | 国内精品国语自产拍在线观看91 | 国产亚洲欧美高清在线观看 | 日本中文字幕一区二区有码在线 | 中文字幕高清免费日韩视频在线 | 欧美亚洲日韩国 | 国产欧美一区二区另类精品 | 女日韩优在线 | 9cao在线精品免费 | 国产综合一区二区三区 | 最新亚洲一区二区在 | www国产精品一区二区三区 | 女人成午夜大片7777在线 | 欧美性猛交ⅹxxx乱大交 | 日本特级婬片中文免费看 | 日韩亚洲人成影院 | 性欧美午夜高清在线观看 | 美国十次啦超级大导航 | 国产+亚洲+制服 | 女同精品一区二区 | 色色一区二区 | 国产91页 | 91精品国产自产91精品 | 深夜影视网 | 成人动漫在线播放一区二区 | 日本又黄又爽 | 蜜桃电影网 | 国产精品美女一区二区视频 | 99久热海外精品视频 | 99re6久| 国产国产裸模裸模私拍视频 | 国产高清成免费视频 | 国产初高中生真实在线视频 | 亚美影视免费在线观看 | 日韩中文字幕v亚洲中文字幕 | 天天色影综 | 亚洲国产福利成人一区二区 | 国产精品日韩精品在线播放 | 精品含羞草免费视频观看 | 老牛影视网 | 色五月播五月开心五月激 | 国产高清在线观看一区二区三区 | 综合乱伦自拍影视 | 97精品久| 欧美日韩一区观看 | 国产精品偷窥熟女精品视频 | 国产精品区一区二区三 | 黄又色高清视频免费 | 好吊妞在线新免费视频 | 日本高清在线观看www色 | 亚洲自偷精品视频自拍 | 欧美a级情欲片在线观看免费网站 | 羞羞视频网站 | 免费播放婬乱男女婬视频国产 | 欧美日韩国产一级 | 国产精品自拍激情性爱 | 真人做爰欧美aaaaa | 欧美无极品在线观看 | 国产又粗又猛又爽又黄的视频七张 | 国产91玉足脚交在线播放 | 日本夜爽爽一区二区三区 | 激情一区 | 区在线观看 | 91九色国产在线 | 精品一区二区三区在线免 | 亚洲步兵在线播放 | 韩国三级国产欧美 | 欧美性一级中文字幕18页 | 中日韩在线视频 | 国产精品中文字幕制服 | 色欧美老角色 | 免费观看视 | 国产亚洲欧美第一页在线观看 | 中文字幕一区二区三区 | 少女频道在线观看高清 | 国产经典三级在线播放 | 香港午夜三级a三级高清观看 | 国产亚洲精品片a77777 | 午夜视频在线观看一区 | 嫩小槡bbbb槡bb | 国产桃色在线成免费视频 | 精品外国呦系列在线观看 | 一国产一国产 | 欧美性猛交ⅹxxx乱大交 | 国产灌醉极品在线观看 | 啦啦啦视频 | 国产美女自拍视频 | 91社区在线观 | 国产精品一区二区播放在线 | 91影院| 国产精品激情偷乱一区二区∴ | 在线观看亚洲欧美日本 | 亚洲国产精品无 | 免费观看一区二区三区 | 国产精品99精品一区二区浪潮 | 人摸人摸在线视频 | 亚洲欧美日韩中文二区 | 奇米网7777 | 国产一区二区三区 | 欧美激情综合亚洲一二区 | 欧美人成网站中文字 | 国产天堂精品 | 伦视频在线观看 | 亚洲高清一区二区三区不卡 | 国产丝袜视频在线 | 国产精品青青青高清在线 | 日本国产一区二区三区在线观看 | 97影院午夜午夜伦不卡 | 欧美区一区二 | 日韩欧美在线中 | 国产又色又爽又黄刺激的影视 | 三年片在线观看免费观看大全 | 涩涩涩在线| 国产日本欧美在线观看 | 国产精品酒店在线精品 | 日韩精品在线第一页 | 男人本色国产在线综合 | 国产精品自拍一区 | 国产。亚洲。在线播放 | 97视频精品全国免费观看 | 五月天婷婷激情 | 国产经典在线观看一区 | 最近免费中文字幕视频高清在线看 | 99视频精品全国在线观 | 国产亚洲精品九九久在线观看 | 丝袜美腿一区二区三区 | 色综合欧美 | 91午夜在线免费观看小视频 | 欧美国产亚洲一区 | 最新中文字幕在线观看 | 中文字幕在线亚洲二区 | 成人α片免费视频在线观看 | 欧美在线男人 |