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

金喜正规买球

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
色午夜日本高清视频www | 欧美国产日韩a在线观看 | 亚洲日韩视频高清 | 国产日韩欧美福利 | 中文字幕中字在线视频 | 国产啪精品视频网站 | 国产偷窥女洗浴在线观看亚洲 | 日韩天天精品综合 | a网站在线观看 | 一个人看的www视频免 | 亚洲男人的 | 在线播放亚洲精品 | 亚洲区一二三四区 | 从后面进入嗯啊视频 | 新91网页版| 午夜福利免费院 | 日韩va不卡精品一区二区 | 中文字幕在线观看网站 | 国产亚洲人成a在线v网站 | 免费人成黄页网站大全在线观 | 国拍在线精品 | 两个人看的视频在线观看 | 日韩精品在线不卡一区二区 | 亚州第一页欧 | 国产乱子伦精品视频 | 色综合综合色 | 国产专区一区在线观看 | 91视频官网 | 国产专区一区在线观看 | 午夜福利理论片高清在线观看 | 国产高清不卡一区二区 | 99国精产品在线视频 | 中字幕一区二区三区乱 | 久热中文字幕精品视 | 国产丰满 | 国产精品三级在线看免费看 | 大片在线观看 | 91最懂男人的午夜社区 | www.五月婷 | 黑人巨大性欧美一区二区三 | 精品国产福利在线观看91啪 | 国产一极视频 | 成品网站源码入口隐藏通道 | 精品国内一区二区三区免费视频 | 国产精欧美一区二区三区 | 潘金莲与西门庆床戏在线 | 99热在线只有精品 | 2025国产每日福利更新 | 国产精品色三级在线观看 | 中文字幕va一区二 | 野外性史 | 全集影院 | 蜜桃网址| 成人观看的视频三级 | 欧美一区二区三区精品视频在线 | 国产精品网站在线观看免费传媒 | 国产国产人免费人成免费视频 | 欧美日韩午夜视频在 | 国产精品一区二区三 | 成·人免费午夜视频含羞草 | 中日韩精品视频 | 亚洲日本精品va中文字幕 | 日韩精品福利片午夜免费观着 | 日韩午夜福利 | 八戒成年私人影院 | 欧美日韩国产一区国产二区 | 收集最新中文国产中文字幕 | 国产日韩精品在线播放 | 最新国产一区二 | 午夜影视在线播放免 | 国产一区二区三区四区精 | 国产欧美自拍 | 99r8| 日本在线在线亚洲 | 图片小说亚洲 | 亚洲欧美日韩自偷自拍 | 国产啪视频免费观看视频 | 国语精品91自产拍在 | 日韩精品视 | 亚洲精品一品区二品区三区 | 欧美精品视频在线观看 | 国产3区 | 国产精品无 | 91精品国产自产91精品 | 今日火爆归来! | 日韩视频高清欧美一区 | 中文字幕v人 | 国产精品亚洲综合天堂夜夜 | 国语自产 | 国产综合精品一区二区 | 96国产xxxx免费视频 | 无遮无挡三级动态图 | 亚洲日韩国产综合区 | 国产黄在线观看免费观看不卡 | 精品三级一区二区三区四区 | 一级特黄aa大片欧美 | 国产成a人 | 春宵福利app导航中心 | 1卡2卡三卡4卡免费日韩乱码 | 亚洲和欧洲一码二码区别在 | 亚洲成国产人片在线观看 | 国产欧美日韩另类精彩视频 | 最新高清电影在线免费观看 | 日韩亚洲欧美中文高清 | 一区二区国产高清视频在线 | 日本黄大片在线观看视频 | 国产精品欧美日韩视频一区 | 日本女黄在线观看 | 日韩一级一欧美一 | 国产婷婷高清在线视频站 | 国产欧美精品一区二区三区pp | 131美女爱做视频 | 亚洲丝袜制服欧美另类 | 日韩欧美精品综合一区二区三 | 97在线观看高清视频免费 | 国产亚洲视频在线播放7t | 中日韩在线视频 | 好吊妞无缓冲不卡在线视频 | 综合国产日韩亚洲 | 一起草视频在 | 亚洲一区二区三区高清 | 欧美三级不卡在线观看 | 日韩亚洲欧美国产精品综合 | 国产精品对白 | 精品国语任你躁 | 成人免费播放 | 国产精品丝袜黑色高跟鞋 | 国产网站一区二 | 国产激情一区二区三区在线hd | 国产一区二区三区 | 日韩欧美国产精品 | 4日本国产vps私人大片 | 中文字幕亚洲欧美在线不卡 | 九九热99久| 精品日本一区 | 天天咱天咱天干天谢 | 国自产拍亚洲免费视频 | 亚洲人成网77777色在线播放 | 日韩中文字幕亚洲精品 | 国产香线 | 精品亚洲欧美中文字幕在线看 | 欧美高清一区二区三区不卡视频 | 成人国产精品一区二区八戒网 | 性一交一乱一伦一 | 成人v视频网 | 国产午夜手 | 秋霞影视免费播放手机版 | 国产一区二区三区视频精品 | 欧美+日韩+免费 | 国产精品一区二区视色 | 91香蕉国产线在线观看免费 | 人人鲁免费 | 超级媚药痉 | 香蕉精品亚 | 中文字幕精品视频第一区第二区 | 国产精品55夜色66夜色 | aⅴ天堂在线 | 亚洲精品国产第一区二区尤物 | 欧美高清中文字幕综合网 | 国产91精品高跟丝袜在线 | 亚州国产精品一线北 | 国产乱子伦60女人的皮视频 | 99视频在线观看 | 性直播视频在线观看免费 | 亚洲精品国产精品国自产网站 | 一级a爱片免费观看高清完整 | 三年片免费观看大全 | 啦啦啦在线观看www 三三影院网 | 国产精品不卡免费视频 | 色猫咪免费人成网站在线观看 | 2025最新电视剧高清热播 | 日本在线在线亚洲 | 村长扶着小萍的腰猛的挺进 | 国产真实九 | 国产一区二区在线视频观看 | 大伊香蕉精品一区视 | 亚洲免费黄 | 欧美a级情欲片在线观看免费网站 | 国产成a人亚 | 三年在线观看免费完整版中文 | 久9视频这里只有精品试看 经典影片免费在线观看 | 永久入口| 神马午夜福利我不卡手机电影 | 青草青草久热精品视频在线播放 | 国产精品一区二区精品视频导航 | 亚洲午夜福利在线视频 | 真实国产乱子伦视频 | 国国产乱理伦片在线观看夜 | 日本va欧美va精品发布 | 91干逼 | 日本一区二区三区免费乱视频 | 今日吃瓜 | 秋霞电影亚洲一区二区三区 | 电影在线观看高清完整版 | 国产午夜a级理论片在线播放 | 91极品尤物在线观看 | 国产精品国产一区二区三区 | 亚洲欧美色一区二区三区精品 | 国产suv精品一区 | 欧美人成在线观看网站高清 | 国产精品免费视 | 国产精品区网红主播在线观看 | 国产午夜福利在线观看红一片 | 美女视频免费观看18网站 | 国产精品视频一区二区噜噜 | 水蜜桃亚洲一二三四在线 | 国产不卡在线看 | 影视先锋 | 亚洲高清精品一区 | 亚洲aⅴ精品一区二区三区 亚洲成v片 | 国产老人一区v二三区 | 国产一区二区精 | 国产午夜福利在线观看红一片 | 精品午夜福利1000在线观看 | 添bbb免费看高清视频 | 国产自产一区二区三区视频在线 | 亚洲va在线va天堂xxxx | 华人亚洲欧美精品国产 | 国产男女拍拍拍高清视频 | 精品理论片免费视频播放 | 欧美区一区 | 国产精品成人免费 | 日日摸夜夜添夜夜添特色大片 | 午夜亚洲一区二区福 | 给我免费观看片在线观看中国 | 国产一产二产三精华液 | 又粗又大又黄又硬高清视频 | 亚洲综合一区二区三区 | 欧美午夜视频一区 | 日韩欧美一区二区在线精品 | 欧美精品亚洲精品日韩精品 | 欧美日韩精品一区二区三区视 | 尤物视频免费观看 | 国产99久60在线视频 | 玩弄牲欲强老熟女 | 日本国产性爱观看视频 | 欧美日韩在大午夜爽爽影院 | 国色一卡2卡二卡4卡乱码 | 欧美精品+在线播放 | 亚洲欧美日韩中文在线制服 | 欧美精品偷自拍另类在线观看 | 国产高清在线观看无删减 | 亚洲成aⅴ人片久青草影院 国产91精品系列在线观看 | 亚洲色精品一区二区三区 | 日韩大片在线观看入口 | 亚洲欧美日韩国产综合久 | 国产福利免费 | 国产在线视频在线观看 | 日本高清三区 | 九七九七色伦在线影院 | 国产日韩欧美新地址 | 女人靠逼视频不卡的 | 国产在线精品一区二区三区直播 | 亚洲第一激 | 国产男女爽爽爽爽爽爽爽爽 | 国产在线观看不卡免费高清 | 亚洲欧美综合在线精品 | 中文字幕乱码亚洲精品 | 香蕉免费一区二区三区 | 一区二区免费 | 亚洲精品动漫一区二区三区在线 | 免费看精品网站视频在线观看 | 精品国产免费一区二区三区香 | 国产2025精品一区 | 国产精品资源网站视频 | 日韩欧美一区二 | 日韩欧美亚洲国产高清 | 这里只有精品在线观看视频 | 国产传媒一区 | 国产老色批视频在线观看应用 | 国产最新精品盗摄视频 | 国产理论片在线观看 | 免费黄频在线免费观看 | 亚洲免费人成 | 4399中的精品双人 | 国产微信高清小视频在线播放 | 精品一区二区三区高清 | 欧美韩国电影免费在线观看 | 免费电影天堂 | 免费电影| aaaaa级少| 日韩欧美国产电影 | 亚洲精品第一国产综合精品5 | 全网最新院线电影 | 亚洲精品亚洲精品亚洲精品日韩 | 日韩国产一区二区三区地区 | 亚洲精品国产精品国自产 | 高清欧美性xxxx成熟 | 高清一区二区亚洲欧美日韩 | 麻花星空影视传 | 日韩美女黄大片在线观看 | 欧美.日韩.日本国产视频 | 国产亚洲欧美日韩综合另类 | 尤物在线精品视频 | 蜜臀91精品国产高清在线观看 | 国产乱码在线精品可播放 | 星辰影院 | 欧美日本一区二区三区在线 | 精品日韩在线一区二区 | 国产精品一区二区在线观看网站 | 三级黄日本 | 香港三日本三级人妇三级99 | 合集直播在线观看 | 国产在线观看入口网站 | 国产精品播放一区二区三区 | 国产亚洲91精品色在线 | 精品国产自在现线免费观看 | 中文字幕日本αv一区二区 乱伦国产精品日本 | 7799hcom视频电影 | 国产乱对白刺激视频不卡 | 亚洲a级情欲片在线观看 | 国产高清在线精品一区在线 | 中文字幕在线观看一区二区 | 国产在沙发上午睡被强 | 欧美性活一级视频 | 乱码精品一区二区三区四川人 | 性一交一黄一片 | 韩国三级私人教练 | 国产日韩欧美亚洲精品中字 | 国产精品午夜福利在线观看地址 | 欧美老妇人与小 | 华人亚洲欧美精品国产 | 欧美激情中文字幕综合一区 | 好看的电视剧全集免费在线观看 | 国产一区二区影视 | 在线观看免费 | 国产精品一区二区手机看片 | 天堂视频 | 亚洲日韩在线观看 | 国产一区二区三区日韩精品 | 国精品午夜福 | 91免费伊人 | 蜜桃臀aⅴ精品一 | 国产成在线观看免费视频成本 | 日韩国产一级一区精品 | 一区二区三区免费高清视频 | 粗暴进入娇 | 国产激情国语对白 | 女生殖器 | 国产桃色在线成免费视频 | 片在线播放 | 成人app破解不限次数 | 亚洲囯产一区二区三区 | 精品国产国产综合精品 | 国产一区二区在线视频 | 亚洲国产福利成人一区二区 | 高清影视电视剧免费在线观看 | 末发育娇 | 偷偷要色偷偷网站视频 | 浪货叫的再浪一点张开 | 日韩中文字幕v亚洲中文字幕 | 2025亚洲日韩新视频 | 福利国产精品 | 91精品国产自产在线观永久 | 人人干在线视频 | 青苹果乐园影院在线播放 | 国产喷水大秀在线观看2025 | 国产乱子伦农村叉叉叉 | 午夜福利成人污在线观看 | 欧美性video高清精品 | 最新热播电影大全 | 巨熟乳波霸中文观看免费 | 精品免费国产影视 | а√天堂8资源中文在线 | 免费播放婬乱男女婬视频 | 国产精品成人aaaaa网站 | 国产羞羞又硬又粗又长又大 | 一区二区三区免费在线观看 | 精品一区二区在线观看 | wwwらだ天堂中文在线 | 成人高清 | 好男人好资源影视在线 | 野花香视频免费观看高清在线 | 中文字幕制服丝袜一区二区三区 | 99视频 | 国产曰批视 | 国产一区二区精品在线 | 国产亚洲欧美手机在线观看 | 超级碰97直线国产免费公开 | 中文字幕第一页在线 | 日本韩国偷拍视频对白不卡高清精 | 精品亚洲欧美日韩 | 老年人一级特黄aa大片 | 国产最新一区二区三区天堂 | 欧美午夜理伦三级在线观看 | 国产网站一区二 | 91精品成人影院 | 日本一卡2卡三卡4卡网站 | 亚洲精品成a人在线观看 | 国产男女爽爽爽爽爽免费视频 | 国产羞羞又硬又粗又长又大 | 国产一级二级 | 亚洲精品aⅴ中文字幕乱码 国产在线ts | 欧美a级情欲片在线观看免费网站 | 亚洲天堂在线视频观看 | 中文字幕乱码亚洲精品 | 亚洲日韩一区二区三区四区高清 | 国产最新精品精品视频 | 观看一级 | 又污又爽又黄的网站 | 91香蕉网站在线 | 中文字幕精品一二三四五六七八 | 一区二区三区在线看 | 2025在线精品自 | 国产美女久 | 亚洲国产精品国语在线 | 精品国产二区亚洲日本精品 | 日本三级免费网站 | 亚洲理论片中文 | 亚洲一区二区三 | 欧美中文日韩在线观看 | 是每一个韩剧迷的韩剧tv! | 快速安装不 | 药物迷奷系列在线播放免 | 欧美在线一区视频 | 日韩电影大片手机在线观看 | 国产一区二区三区四区在 | 激情综合一区二区三区 | 国产极品在线 | 欧美性bbbbbxxxxx| 国产亚洲精品资源在线 | 日本成本人片免费网站 | 免费国产黄线在线观看 | 欧美xxxx欧美精品 | 黄页免费观看 | 欧美怡红院免费全部视频 | 国产人妇三级视频在线观看 | 国产日产高清欧美一区二区三区 | 欧美性猛交xxxx乱大交极品 | 国产嘿嘿嘿视频在线观看 | 日韩美女三级视频 | 在线亚洲精品专区 | 麻花星空影视传 | 亚洲国产高清 | 韩国v欧美v亚洲v日本v | 欧美精品综合一区二区三区 | 国产免码va在线观看免费 | 青青草中国三 | 免费精品国自产拍在线播放 | 国产一区二区丝袜美腿在线 | 亚洲人成网77777色在线播放 | 国产精品欧美一区二区三区 | 中文字幕乱码免费视频 | 九九99九| 精品成人大胸美女视频在线播放 | 中文字幕制服丝袜在线观看 | 精品亚洲欧美v国产一区二区三区 | 亚洲一区二区高清 | 国产欧美网站 | 91大神大战丝袜美女在线观看 | 国产偷伦精品视频 | 欧美一区二区在线观看视频 | 天天天天躁天天爱天天碰2025 | 日韩综合一区在线观看 | 亚洲无线一二三四区手机 | 国产一区二区三区在线啊 | 全黄性性激高免费视频 | 色就是色亚洲视频 | 小小水蜜桃高清电视剧观看 | 欧美精品一区二区三区视频 | 国自产偷精品不卡在线 | 最新日韩午夜一区二区 | 国产萌白酱喷水在线播放尤物 | 国产不卡视频一 | 午夜成人影院网站18进 | 亚洲欧美精品综合中文字幕 | 婷婷亚洲综合一区二区 | 日本乱妇乱子视频网站 | 亚洲最大国产成 | 成人亚洲欧美丁香在线观看 | 二区视频在线观看 | 精品动漫一区二区 | 精品国产福利在线观看 | 午夜自产精品一区二区三区 | 国产成视频在线观看 | 欧美日韩第一区二区三区 | 在线天堂8 | 99国产在线精品观看二区 | 五月天在线观看视频网站 | 国产极品精品免费 | 免费电影天堂 | 亚洲精品日韩中文字 | 亚洲精品国偷拍自产 | 亚洲视频在线免费观看 | 欧美自拍偷拍视频 | 99这里只有精品免费视频 | 亚洲无线码在线一区观看 | 国产亚洲欧美视频 | 福利理论片 | 亚洲愉拍自拍欧美精品 | 国产精品lululu在线观 | 中文字幕日本不卡 | 免费动漫 | 美女被肏翻白眼视频在线观看 | 99视频在线国产 | 国产久一视频在线观看app | 国产精品日韩欧美 | 亚洲国产欧美一区二区三区 | 亚洲精品1区2区3区4区 | 国内精品免费 | 老司机免费精品线观看86 | 日本欧美高清全视频 | 91精品国产闺 | 国产欧美亚洲专区在线 | 99热这里只有精品18 | 秋霞国产午夜 | 中文字幕精品一区二区三区在线 | 国产亚洲精aa在线观看香蕉 | 亚洲日本天堂在线 | 国产免费人成视频在线观看播放 | 精品成人| 亚洲高清国产品国语在线观看 | 亚洲日本道1区2区3区不卡 | 欧美性videos高清 | 日本三级观看 | 亚洲一区二区福利在线观看 | 污星人国产 | 99在线精品国产不卡在线观看 | 青青青手机国产在 | 欧美一区二区三区精品国产 | 观看视频| 999任你躁在线精品免费 | 国内外精品一区二区三区在线观看 | 精品一区二区三区四区 | 国产偷国产偷亚洲高清日 | 日韩欧美亚洲一区二区综合 | 性插爽视频欧 | 日韩一区二区三区四区中文字幕 | 日本另类αv欧美另类aⅴ | 中文字幕人成乱码在线观看 | 色老板精品视频在线观看 | 精品午夜福利在线观看 | 国产偷国产偷亚洲清高app | 最新热门电影电视剧免费在线观看 | 午夜三级a三级三点 | 91青娱乐免费国产视频 | 国产99久60在线视频 | a∨中文字幕另类 | 日韩美女视频一区 | 亚洲自偷自偷精品 | 91精品国产福利在线导航 | 日本乱码一区二 | 91小电影 | 高清影视| 青青青在线播 | 欧美另类图片视频无弹跳 | 97香蕉国产免视频网站 | 亚洲激情午夜视频 | 精品国产日韩无影视 | 午夜不卡视频 | 国产精品自在线拍国产下载 | 视频一区二区三区在线 | 国产精品视频高清在线播放 | 国产日韩综合一区在线观看 | 蜜桃影视 | 欧美性xxxx极品高清 | 老少配老妇老熟女中文普通话 | 丁香婷婷六月综合缴清 | 欧美日韩国产一区二区 | 99在线观看视频免费精品9 | 午夜理伦片免费 | 亚洲欧美日韩 | 奇米777四色影视在线看 | 香蕉五月天一综合网 | 国内精品美女a在线播放 | 国产欧美亚洲专区在线 | 欧美成妇人吹潮在线播放 | 97国产在线一区不卡 | 国产欧美日本亚洲 | 国产人澡人澡澡澡人 | 三区视频在线 | 男女羞羞的事在线观看 | 国产女主播勾搭美团在线观看 | 男动漫gay片cartoon | 国产在线视精品在亚洲 | 午夜成人理论福利片 | 色老头一区二区三区 | 国产精品免费视频色拍拍 | 国产一区二区三区在线免费 | 水蜜桃视频网站在 | 专区不卡 | 五月天婷婷丁香中文字幕 | 国内视频一区在线播放 | 国产偷国产偷亚洲高清日 | 国产超薄肉丝袜在线播放 | 亚洲国产在线精品国自产拍 | 国产偷拍盗摄一区二区 | 亚洲精品自拍视频在线免费 | 色狗电影网 | 国产精品美女一区二区视频 | 免费v片在线观看 | 色人阁第四色 | 欧美精品自拍一区 | 免费人成在线观看网站体验站 | 色男人在线电影视频网站 | 国产福利在线观看永久免费 | 国产欧美日本亚洲精品一4区 | 国产女人喷 | 91精品啪在线观看国产老人令品 | 亚洲欧美高清精 | 亚洲一区二区三区高清视频 | 天美麻花星空免费观看乡村版 | 国产精品免费aⅴ片在线观看 | 两性色午夜视频免费老司机 | 欧美日韩国产58香蕉在线视频 | 欧美日精品一区二区在线观看 | 日韩欧美激情视频 | 日本精品一区二区三区高清 | 精品視頻無碼一區二區三區 | 香蕉影院在线观看 | 一本之道在线观看不卡 | 亚洲欧美视频一区二区三区 | 最新版本安卓下载 | 亚洲国产婷婷综合在线精品五月 | 免费现黄频在线观看国产 | 在线点播亚洲日韩国产欧美 | 亚洲码国| 国产又粗又黄又爽的大片 | 最近中文字幕mv第一季歌词 | 国内精品自线一区二区三区 | 69精品人人人人人人人人人 | 国产精品自在拍一区二区不卡 | 丰满成熟亚洲人毛茸茸 | 三级乱伦国产欧美 | 日本精品一区二区三区四区 | 午夜视频在线免费 | 欧美性色黄大片www喷水 | 浅田真美| 国产午夜亚洲精品不卡免下载 | 性欧美xxxxⅹoooo3d画 | 成人永久免费视频网站在线观看 | 精品国产污网站在线观看15 | 午夜福利国产一级欧美片 | 成人夜视频寂寞在线观看 | 精品国产免费一区二区三区 | 国产精品 | 国产午夜免费视频 | 国产亚洲精品福利在线无卡一 | 国产福利在线观看 | 日韩中文免费视频 | 五月天开心激情网 | 一级特黄aa大片欧美 | 国产超级在线视频观看 | 亚洲中文字幕 | 亚洲日韩一区二区一 | 又硬又粗又大一区二区三区视频 | 日韩伦理一区二区精品视频 | 韩国v欧美v亚洲v日本v | 九九在线精品 | 热播电视剧大全 | 水蜜桃亚洲一二三四在线 | 亚洲综合精品网站在线观看 | 青青在线观看国产大片 | 91最懂男人的午夜社区 | 中文字幕美日韩在线高清 | 亚洲全网| 最新欧美精品一区二区三区 | 香港三日本三级人妇三级99 | 亚洲天码中字 | 草102| 182tv午夜福 国产剧情对白刺激在线 | 午夜国产福利看片 | 日本一区二区三区精品 | 国产高清欧美情侣视频 | 欧美日韩产精品自在自线 | 伦理电影在线观看 | 91免费看片| 欧美日韩不卡一区二区 | 永久免费a | 亚洲一区不卡视频 | 午夜视频精品视在线播放 | 亚洲十大国产精品污污 | 香蕉在线精品视频 | 亚欧洲精品在线视频免费观看 | 欧洲在线观看一区二 | 亚洲中文字幕高清有码在线 | 2025国产精 | 国产女同| 国产精品v日韩精品 | 日韩欧美tv一区二 | 三区在线观看 | 国产模特精品私拍在线 | 日本一区二区三区在线播放 | 精品国产二区亚洲日本精品 | 电影中文 | 国产在线成观看视频播放 | 亚洲中文欧美日韩在线不卡 | 午夜福利电影在线观看 | 中文字幕在线视频在线看 | 日韩老熟女一区二区 | 日韩欧美国产免费看清风阁 | 欧美激情一区 | 看一级特黄a大一片电影 | 欧美日韩精品激情福利综合 | 国产精品日本一区二区不卡视频 | 亚洲人和日本人 | 91精品国产福利尤物免费 | 不一样的国产爽歪歪视频 | 日韩精品搭讪在线视频播放 | 国产精品精品自在线拍 | аⅴ资源天堂资源库在线 | 给我免费播放片国语电影 | 欧美性猛交xxxx乱大交蜜桃 | 91成人午夜性a一级真人片 | 多多影院 | 美女扒精光 | 亚洲大片精品免费在线 | 日本乱理伦片在线观看中文字幕 | 91热成人精品国产免费 | 草草在线观 | 国产精品精品国内自产拍 | 亚洲精品一区二区国产精华液 | 午夜福利精品 | 日韩精品系列产品 | 日韩午夜理 | 113美女写真 | 片在线观看导航 | 午夜亚洲国产理论片二 | 亚洲一区二区三区深夜天堂 | 日韩精品制服诱惑中文字幕 | 国产在线观看精品一区二区 | 日韩.国产.欧美.亚洲 | 亚洲一区国产日韩午夜在线观看 | 国产精品免费精品自在线观看 | 欧美日韩亚洲一区二区精品 | 极品美女在线观看免费直播 | 亚洲精品我不卡 | 欧美国产日韩一区二区三区综合视 | 成年人在线免费观看视频 | 日本免费影片一区二区 | 中文字幕日韩精品一 | 九九视频精品全部免费播放 | 免费一区二区三区日韩 | 亚洲欧洲精品一二三区 | 欧美中文字幕乱伦视频 | а√天堂8资源中文在线 | 亚洲高清国产品国语在线观看 | 国产亚洲精aa在线观看香蕉 | 91九色李宗瑞在线观看 | 国产精品亚洲玖玖玖在线观看 | 国产在线精品福利91啪 | 中文字幕乱码亚洲精品 | 日韩精品午夜视频一区二区三区 | 综合三级在线观 | 91精品人成在线观看 | 日本午夜免a费看大片中文4 | 日韩欧美亚洲一区二区综合 | 欧美一区二区三区激情 | 亚洲国产一区二区中文字幕 | 免费三级在线观看中文字幕 | 91豆奶视频 | 国产欧美网址 | 国产又色又爽又黄的网站在线 | 日产精品一卡2卡三卡4卡乱码 | 国产精品外 | 日本天堂免费观看 | 国产制服丝袜观看 | 在线观看视频 | 日本一本免费线观看视频 | 国产性色αv | 在线亚洲日韩欧美一区二区 | 国产精品多p对白交换绿帽 国产日本韩国视频 | 色哟哟免费精品网站入口 | 国际国内自拍偷拍视频摄影 | 日本不卡在线免费 | 日本一卡二卡三 | 亚洲国产一区二区三区a毛 国产美女淫秽一区二区三区 | 野花日本大全免费 | 国产精品巨作无遮拦 | 国产性tv国产精 | 国产精品免费视频色拍拍 | 亚洲国产激 | 国产欧美一区二区高清在线 | 日韩综合一区在线观看 | 无人区一码二码三码区别 | 欧美日韩国产综合视频在线观看 | 中文字幕午夜福利片午夜福利片 | 日韩专区在线观看 | 亚洲欧洲中文字幕免费看 | 亚洲欧美精品一区二区 | 中文字幕精品一区二区 | 乱码午夜 | 国产午夜亚洲精品 | 欧美性一区二区三区 | 日本毛x片免费视频观看视频 | 欧美影院一区二区三区 | 国产精品成人第一区 | 婷婷激情狠狠综合五月 | 日韩天天精品综合 | 91tv官网精品观看 | 苍苍影院 | 成人a大片高 | 精品理论片免费视频播放 | 91精品国产品国语在线不卡 | 一个人免费观看视频www | 欧美性色欧美a在线播放 | 亚洲欧美日韩二区三区 | 人人狠狠综合99综合久 | 影视大全 |