主頁 >  其他 > 2.2.2 定點數的移位運算

2.2.2 定點數的移位運算

2020-11-04 14:06:17 其他

XYXZNB(*^ワ^*)*\(^o^)/*

我們已經知道了定點數在計算機內部如何表示分為無符號數和有符號數啊,其中有負號數可以用元碼補碼,反碼和移碼這樣的4種方式來表示,那么從這個小節開始,我們要學習定點數的相關的運算,應該怎么實作分為移位運算,還有加法減法運算,乘法運算,除法運算,其中一位運算和加減運算的考察頻率是更高的,那這一小節中我們先來學習定點數的一倍運算,怎么實作那移位運算,又可以進一步的劃分為算術移位,邏輯移位,還有回圈移位,我們會按從上至下的順序依次講解,好,那首先來認識一下什么叫做算術移位,我們從大家熟悉的十進制數出發啊,假設這兒有這樣的一個10進制數985.211,那么我們從小經常做的一個事情是讓小數點后移一位或者后移兩位相當于整個數值也就是幾十到二十八小時,次方也就是奇數的一次方,小數點后移兩位,相當于乘以10的二次方,那小數點往前移也是類似的一個效果,只不過往前移的話,那相當于是除以10的一次方和除以10的二次方,這是大家在小學的時候就學會的東西,那如果結合我們之前對R進制數它的實際數值的一個定義來看的話,其實我們移動了小數點之后,相當于改變了每一個數碼位的位權,因為每一個位的位權為多少,其實是以小數點的位置作為參考的,所以所謂的算術移位,算術移位的意思就是我們通過改變各個數碼位和小數點的這種相對位置,從而改變各個數碼位的位權,那我們可以用這種算術移位的方式來等價的實作乘法和除法,這是大家熟悉的實際值,那對于我們之前的小節中學習到二進制數其實也是一樣的,對于定點數來說我們沒辦法改變小數點的位置,但是山不轉,對于定點數來說我們沒辦法改變小數點的位置,但是山不轉可以讓水轉,所以我們如果能夠移動這個數值部分,只要能改變每一個數值位和小數點的相對位置關系,那我們同樣可以實作算術移位的運算,比如這我們已經有了-20這個數的原碼,表示好來看一下進行了算術又移又移了移位之后,啊,得到的這個值應該是2的一次方,再加上23次方也就是等于10,那么在考慮上這個符號位就應該是-10這樣的一個值,所以和我們之前實際是推出的結論是類似的,當我們對二進制的這種定點數右移移位之后,相當于我們實作了除以基數的一次方,這樣的一個操作,那結合這個圖并不難理解,本來以前這兩個一它們的權重分別是2的4次方和2的二次方,那右移一位之后,它們的權重都分別除以了2,一個變成二的三次方,一個變成2的一次方,整體都是這樣縮小了一半, R的三次方,一個變成R的一次方,整體都是這樣縮小了一半,所以這就是算術右移的一個效果,相當于除以2,好我們再用一位,那么剛才這個最低位就會移動到啊,小數點的后面這個位置,由于我們的機器字長有限,所以移出去的這一位我們就只能舍棄不用,那同樣的新的這個高位我們會用0來補充,那這次右移的結果,同樣也是相當于再除以一個2,好繼續在這個基礎上我們再右移一位,那這個時候我們會把末位的一給移出啊,這8個位元的范圍同樣高位補0,不過這個時候得到的值啊,它應該是-2這樣的一個值,已經不是-5÷2的精確表示了,因為-5÷2應該是負的2.5,這樣才是精確的除以2的值,那這是因為我們移出去的這一位,它的值不是0而是1其實相當于我們舍棄了一個進度因此得到這樣的結論當我們進行算術一的時候首先高位,算術右移的時候,首先高位會用0來補充,然后低位直接舍棄,如果我們舍棄的這一位是0的話,那么就相當于嚴謹的除以2的一個結果,而如果我們舍棄的這一位不等于0,那在這種情況下我們會丟失一定的精度好,這是算術又一接下來來看算術左移,那左移的方式也是一樣的,我們只讓這個數值部分進行移動符號位是保持不變的,那進行左移之后,原本數值位的最高位會被我們舍棄,而最低位出現的這些空位,我們會用零來代替,那進行這樣的一次右移之后得到的結果應該是負的40相當于在原有的基礎下乘以2,那如果再做一位也是類似的效果,我們丟棄最高倍的林湘,當于在原有的基礎上再乘以一個2,而我們在做第1位,由于這次我們丟掉的最高位,他是1,所以最終我們得到的結果是等于負的32就不是這樣,這么簡單了,這點其實也很好理解,因為我們原本左移兩位的時候,這個數值就已經到了負的80這樣的一個值,那負的80,如果讓它再乘以2,應該是負的160這么多,而這個地方我們原碼的尾數只有7位,7個位元位只能表示0~127這樣的一個絕對值的范圍,所以160肯定是已經超出7個位元貝能夠表示的范圍,那這種情況下我們丟棄最高位的一拳值最高的那個一被我們丟棄了,當然就會出現這種嚴重的誤差,他們這是對原碼的算術作業需要注意的地方,好的,那目前為止我們探討的啊,算數左翼和算術,右一是基于用原碼表示的定點整數來探討的,那如果不是定點整數而是定點小數,其實也是一樣的道理,一樣的效果當我們進行算術左移的時候,同樣相當于×2的一個效果算術右移,相當于除以2的一個效果所有的這些他們的味全在做,1他們的位權在左移和右移的時候分別會乘以2和除以2好,所以定點小數,我們就不再單獨的探討好,那接下來我們再反基于反馬的算術移位這兒我們已經給出了正20和-20的一個原碼表示那由于正數的反碼表示和原碼表示是一模一樣的,所以對于正數的算術移位,不管是左翼還是右翼處理的方法都適合原始碼一樣啊,這是反碼表示的正數啊,需要采取的一個策略和原始碼是一樣的好再來看復數也就是符號V為1的數這種數的反馬尾數部分和原始碼是完全相反的,一變成00會變成一砝碼的,一相當于原始碼的零砝碼的,0相當于原始碼的1,所以對負數的算術移位,我們進行補位的時候需要注意,我們補的都是伊娜,這是對于反碼的算術移位,正數和負數我們需要補充的這個味是不一樣的,好接下來我們再來看補碼的算術移位,補充的這個味是不一樣的,好,接下來我們再來看無碼的算術移位,那由于正數的補碼表示和原始碼也是一樣的,所以對于正數補碼的移位運算,我們同樣和原始碼保持一樣的策略就可以都是需要用云來補充移動之后出現了空位,而負數補滿的一位會相對來說復雜一些,補碼是從反馬的基礎上末位嘉羿得到的,那反馬的末位加一會導致砝碼當中更靠后的這些一都會變成0,并且都會發生進位,直到進到第1個0這個地方的位置,所以砝碼轉補碼有這樣的一個規律,就是從砝碼的最右邊這一位開始,從右往左依次的取法,把1都變成0,直到碰到第1個0為止,把砝碼的第1個0變成1之后,再往前的這些部分就不用再改變了,所以負數的補碼呈現出了這樣的一個規律,在這個補碼最右邊的一個1,還有這個一這些部分這些,一個一還有這個一你用的這些部分,這些部分是和原始碼保持一致的,而最右邊的這個一左邊的這些部分,這些部分又是和砝碼保持一致的,所以當我們對補碼的這些尾數進行算術右移的時候往右移會導致高位出現一個空位,那我們補這個空位的方法應該是和反碼的啊,補空位規則是保持一致的,也就是補一,而當我們對補碼進行算術左移的時候,最低位會出現一個需要補的空位,那由于補碼的后半部分和原始碼是相同的,所以我們在補這個空位的時候應該補0,因此我們得到結論,對于負數補碼的算術移位,當右移的時候我們應該補一,然后低位審計剛進行算術左移的時候應該低位補0,然后高位舍棄我們就保證the相當于除以2的一個效果,算術左移相當于×2的一個效果好的,那我們在對算術移位進行一個小小的總結,對于正數來說由于原碼補碼反碼啊,他們的正數表示都是一樣的,所以我們需要補位的時候都是用銀趣步,而對于負數來說補碼的負數左1的時候需要填,0右1的時候是要添一而砝碼的復數,不管左一還是右1,我們都是要添一,不管左移還是右移,我們都是要添1那只要遵從這兒給出的規定,無論我們使用的是什么呢,只要我們進行的是算術左移就相當于×2,主要是右移就相當于除以2,只不過由于我們機器自成呃位數有限,所以有的時候我們沒辦法用算術一位精確的來等效乘除法,這一點我們再講原始碼的左移和右移的時候特別的強調過好,接下來用一個簡單的例子讓大家體會一下算術移位的一個呃具體的應用,接下來我們再來看第2種,一位叫做邏輯移位,那邏輯移位的規則很簡單啊,當我們右移的時候高位50,然后低位移出的這一位直接舍棄就可以,左1的時候我們在低位補靈,然后移出的這一位,我們直接手機就可以那邏輯移位的,這種規則我們可以把它看作是對無符號數的算術移位,好,這個規則很簡單,那我們來看一下邏輯移位有什么作用,比如說啊,我們在計算機里面表示一種顏色的時候,經常會使用到這樣的一種表示方式叫做RGB那R指的是right,也就是紅色G表示的是green也就是綠色,而B表示的是鹿也就是藍色,因為我們知道自然界里面所有的顏色都是由紅綠藍這三種三原色來按照一定的配比來組成的,比如對于最后這個顏色啊,它的RGB值就分別是102幺三九幺三九一個像素,那有的時候我們存盤一個像素點,它的RGB值的時候,需要把RGB這三個值把它們連成三個位元組的一個整體第1個位元組存放R,第2個位元組存放距第3個位元組存放B的值,而現在我們只是分開指明了這三個部分的值分別是多少,好那來看一下怎么把它們拼成三個位元組的一個整體可以這么做,首先我們啊申請用三個位元組來存盤無符號數102也就是R的值,那現在我們對這個無符號數進行邏輯左移左移16位,這就會導致第8位移動到高8位的位置,然后左移產生的這些空位,我們都是用靈來補充,這是邏輯左移的一個規定,而接下來我們再定義一個三個位元組的無符號數啊,這個數的值是139,那么我們再對這個無符號數進行邏輯左移8位的操作,就會導致原本的第8位被放到了中間的8個位的位置之后我們再用三個字,的直139好,最后我們再把剛才得到的123這三個部分進行一個家法操作,就可以得到三個位元組表示的RGB值,最高的一個位元組表示的是2職,中間表示的是G也就是綠色的值,然后最后表示的是B blue的值啊,那這是邏輯移位的一個應用的小粒子,接下來我們再來看最后一種移位運算叫做回圈移位啊,顧名思義,所謂回圈就是指當我們進行比如說循,這一位的一個應用的小例子,接下來我們再來看,最后一組一位運算叫做回圈移位啊,顧名思義,所謂回圈就是指當我們進行,比如說回圈左移的時候移出來的這一位會被放到我們需要填補的這個空位在移位的時候整個二進制串是進行回圈補位的,這個應該很好理解,那當我們進行回圈右移的時候,是不是也是類似的,從右邊移出來的這一位又會跑到啊應該補充的那個位置去啊,那還有一種比較特殊的回圈移位,就是在近衛衛的這種情況,先來解釋一下什么叫近衛衛,也就照我們標注的CF這一位進位的概念大家都知道了,比如我們對兩個8位的二進制數進行加法操作,那當我們運算到最高位的時候,1+1是=0,往高位進1,但是由于機器資產有限,暫存器里只能保存8個二進制位確實產生了一個金幣因此為了實作超過八位元的這種資料確實產生了一個金幣因此為了實作超過八位元的這種資料的,超過巴位元的這種呃資料的加法計算機硬體里面會包含這樣的所謂的進位的位來記錄一下之前這些低位的運算有沒有產生進位,把這個進位保留下來之后,我們在進行之后的更高自己的運算的時候,就可以得到正確的結果,0+1,再加上剛才保留的這個進位1,然后用這樣的方式我們就可以不斷的往高位啊進行計算好,所以這就是所謂的進位位的一個作用,總之它里面要么存在一個1,要么存了一個0,好,現在當我們考慮上這個進位之后,再進行回圈左移,產生的效果就是這樣的,就是會把原本數值位的最高位把它放到這個進位位這個地方,而原本的這個進位位會來補充出現了空位這個樣子好,這就是帶進位位的回圈左移那帶進位位的,那帶進位位的回圈右移是不是也是類似的?呃,無非就是把末尾的這個低位放到進位位的位置,而原本的進位原本的進位位,把它放到啊最高位出現空缺的這個位置,噢,那這就是所謂的回圈移位,那回圈移位的操作很適合用于把一個資料的高位元組和低位元組進行一個調換,就比如之前我們講過一個例子啊,這個漢字它需要占兩個位元組的啊這個位置,但是我們可以有大端存盤和小端存盤這樣的兩種方式大端存盤就是先存放高位元組再存放低位元組,而小端存盤是先存放B位元組再存放高位元組,那如果說要在大端存盤和小端存盤之間進行轉換,使用回圈移位是不是就很方便?我們可以回圈右移8位或者回圈左移8倍,就可以實作高低位元組的一個調換 We的一個作用我們學習的一位運算其中最長好的是算數的,我們學習了定點數的移位運算,其中最常考的是算術移位啊,當我們進行算術左移移位的時候,相當于成了一個基數,當我們算術右移移位的時候,相當于除以奇數的效果,那原碼砝碼補碼進行移位之后補位的這個策略是不太一樣的,特別是補滿,大家比較容易忘,需要基于理解來記憶,那么邏輯,一味的實作很簡單,無論是左一還是左,一還是右一都補您就可以,之后我們又學習了回圈移位就是用移出去的未來補上空缺的那個位兒,對于帶鏡柜位的回圈移位,就是移出地為我們會把它放到近衛衛的位置,而原來的精神病會補上空缺的那個位置,就是移出地為我們會把它放到近衛衛的位置,而原來的近衛衛會補上空缺的那個位置,那再次強調由于原碼補碼反碼,他們的為數有限,也就是可以表示的數值范圍是有限的,所以在某些情況下,一味并不能精確的等效乘法和除法的一個效果可能會喪失精度,甚至是產生比較大的誤差,好的,那這就是移位操作相關的所有內容,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/202225.html

標籤:其他

上一篇:第 45 屆國際大學生程式設計競賽(ICPC)亞洲網上區域賽模擬賽-A-Easy Equation

下一篇:計算機網路實驗七:DHCP基本配置

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more