主頁 > 軟體工程 > 漢字坐標提取

漢字坐標提取

2020-09-19 14:42:53 軟體工程

怎樣可以提取出一個漢字每個筆畫起點的相對坐標位置?跪求 急求 

uj5u.com熱心網友回復:

參考
相對坐標位置

說說我的經驗:
如果是作業需求,樓主可以查詢相關 專利和 論文,再順藤摸瓜,做進一步的作業。
如果是學習,也可以從中得到一些啟發。

uj5u.com熱心網友回復:

僅供參考:
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <windows.h>
#include <string.h>
#include <stdio.h>
char ch[3];
wchar_t uc[2];
int i,un=0,n;
HFONT hfont,ohfont;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    PAINTSTRUCT ps;
    HDC hdc;
    RECT r;
    COLORREF oc;
    int iNumPts;
    LPPOINT lpPoints;          // Path data points
    LPBYTE lpTypes;            // Path data types
    HPEN hOldPen;

    switch(message) {
    case WM_CLOSE:
        PostQuitMessage(0);
        break;
    case WM_KEYUP:
        if (wParam==VK_ESCAPE||wParam==VK_SPACE) PostQuitMessage(0);
        break;
    case WM_PAINT:
        BeginPaint(hWnd, &ps);
        hdc = ps.hdc; // the device context to draw in
        GetClientRect(hWnd, &r); // Obtain the window's client rectangle
        ohfont=(HFONT)SelectObject(hdc,hfont);
        oc=SetTextColor(hdc,0x00FFFFFF);
        SetBkMode(hdc, TRANSPARENT);
        BeginPath(hdc);
        if (un>0) TextOutW(hdc,r.left+100,r.top+100,uc,un);
        else      TextOut(hdc,r.left+100,r.top+100,ch,strlen(ch));
        EndPath(hdc);
//      FlattenPath(hdc);//將所有Bezier曲線段轉換為直線段
        iNumPts = GetPath(hdc, NULL, NULL, 0);
        lpPoints = (LPPOINT)GlobalAlloc(GPTR, sizeof(POINT) * iNumPts);
        lpTypes = (LPBYTE)GlobalAlloc(GPTR, iNumPts);
        iNumPts = GetPath(hdc, lpPoints, lpTypes, iNumPts);
        hOldPen = (HPEN)SelectObject(hdc, CreatePen(PS_SOLID,0,RGB(0,0,255)));

        StrokePath(hdc);
//      for (i=0; i<iNumPts; i++) {
//          switch (lpTypes[i]) {
//          case PT_MOVETO :
//             MoveToEx(hdc, lpPoints[i].x, lpPoints[i].y, NULL);
//             break;
//
//          case PT_LINETO | PT_CLOSEFIGURE:
//          case PT_LINETO :
//             LineTo(hdc, lpPoints[i].x, lpPoints[i].y);
//             break;
//
//          case PT_BEZIERTO | PT_CLOSEFIGURE:
//          case PT_BEZIERTO :
//             PolyBezierTo(hdc, &lpPoints[i], 3);
//             i+=2;
//             break;
//          }
//      }

        for (i=0; i<iNumPts; i++) {
            switch (lpTypes[i]) {
            case PT_MOVETO :
               SetPixel(hdc, lpPoints[i].x, lpPoints[i].y, RGB(255,0,255));
               break;
            case PT_LINETO | PT_CLOSEFIGURE:
            case PT_LINETO :
               SetPixel(hdc, lpPoints[i].x, lpPoints[i].y, RGB(255,255,255));
               break;
            case PT_BEZIERTO | PT_CLOSEFIGURE:
            case PT_BEZIERTO :
               SetPixel(hdc, lpPoints[i  ].x, lpPoints[i  ].y, RGB(255,  0,0));
               SetPixel(hdc, lpPoints[i+1].x, lpPoints[i+1].y, RGB(  0,255,0));
               SetPixel(hdc, lpPoints[i+2].x, lpPoints[i+2].y, RGB(255,255,0));
               i+=2;
               break;
            }
        }
        DeleteObject(SelectObject(hdc, hOldPen));
        GlobalFree(lpPoints);
        GlobalFree(lpTypes);
        SelectObject(hdc,ohfont);
        SetTextColor(hdc,oc);
        EndPaint(hWnd, &ps);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    MSG msg             = {0};
    WNDCLASS wc         = {0};
    HBRUSH hbrh;
    DWORD charset=1;
    hbrh=CreateSolidBrush(0x00000000);
    wc.lpfnWndProc      = WndProc;
    wc.hInstance        = hInstance;
    wc.hbrBackground    = hbrh;
    wc.lpszClassName    = "minwindowsapp";
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);

    if (lpCmdLine[0]==0) {
    HELP:
        DeleteObject(hbrh);
        MessageBox(NULL,"FontPath 字|0xXX|0xXXXX|\\uXXXX|\\uXXXX\\uXXXX [charset] 字體名稱\n\n"
            "       ANSI_CHARSET   0\n"
            "    DEFAULT_CHARSET   1\n"
            "     SYMBOL_CHARSET   2\n"
            "   SHIFTJIS_CHARSET 128\n"
            "    HANGEUL_CHARSET 129\n"
            "     GB2312_CHARSET 134\n"
            "CHINESEBIG5_CHARSET 136\n"
            "        OEM_CHARSET 255\n"
            "      JOHAB_CHARSET 130\n"
            "     HEBREW_CHARSET 177\n"
            "     ARABIC_CHARSET 178\n"
            "      GREEK_CHARSET 161\n"
            "    TURKISH_CHARSET 162\n"
            " VIETNAMESE_CHARSET 163\n"
            "       THAI_CHARSET 222\n"
            " EASTEUROPE_CHARSET 238\n"
            "    RUSSIAN_CHARSET 204\n"
            "        MAC_CHARSET  77\n"
            "     BALTIC_CHARSET 186"
            ,"FontPath",MB_OK);
        return 4;
    }

    uc[0]=0;uc[1]=0;
    if (2==sscanf(lpCmdLine,"\\u%hx\\u%hx%n",&uc[0],&uc[1],&i)) {
        un=2;
    } else if (1==sscanf(lpCmdLine,"\\u%hx%n",&uc[0],&i)) {
        un=1;ch[0]=' ';ch[1]=0;
    } else if (1==sscanf(lpCmdLine,"0x%hx%n",ch,&i)) {
        if (ch[1]) {ch[2]=ch[0];ch[0]=ch[1];ch[1]=ch[2];}
        ch[2]=0;
    } else if (1==sscanf(lpCmdLine,"%2s%n",ch,&i)) {
        ch[2]=0;
    }
    while (1) {
        if (' '==lpCmdLine[i]) i++; else break;
    }
    if (0==lpCmdLine[i]) goto HELP;
    if (1==sscanf(lpCmdLine+i,"%d%n",&charset,&n)) i+=n;
    while (1) {
        if (' '==lpCmdLine[i]) i++; else break;
    }
    if (0==lpCmdLine[i]) goto HELP;
    hfont = CreateFont(GetSystemMetrics(SM_CYSCREEN)-200, 0, 0, 0, 0, 0, 0, 0, charset, 0, 0, 0, 0, lpCmdLine+i);
    if (NULL==hfont) {
        DeleteObject(hbrh);
        MessageBox(NULL,"不支持該字體!","FontPath",MB_OK);
        return 3;
    }

    if(FAILED(RegisterClass(&wc)) ) {DeleteObject(hbrh);return 1;}

    if(FAILED(CreateWindow(wc.lpszClassName,
                        "Minimal Windows Application",
                        WS_POPUP|WS_VISIBLE,
                        0,
                        0,
                        GetSystemMetrics(SM_CXSCREEN),
                        GetSystemMetrics(SM_CYSCREEN),
                        0,
                        0,
                        hInstance,
                        NULL))) {
        DeleteObject(hbrh);
        return 2;
    }
    while( GetMessage( &msg, NULL, 0, 0 ) > 0 ) {
        DispatchMessage( &msg );
    }
    DeleteObject(hfont);
    DeleteObject(hbrh);
    return 0;
}
//FontPath \ud854\udc00 宋體-方正超大字符集
//顯示‘左邊上土下羊,右邊皮’這個字。
#if 0
代理項或代理項對是一對共同表示單個字符的 16 位 Unicode 編碼值。需要記住的關鍵一點是:
代理項對實際上是 32 位單個字符,不能再假定一個 16 位 Unicode 編碼值正好映射到一個字符。

使用代理項對
代理項對的第一個值是高代理項,包含介于 U+D800 到 U+DBFF 范圍內的 16 位代碼值。
該對的第二個值是低代理項,包含介于 U+DC00 到 U+DFFF 范圍內的值。通過使用代理項對,
16 位 Unicode 編碼系統可以對已由 Unicode 標準定義的一百多萬個其他字符 (220) 進行尋址。

在傳遞給 XmlTextWriter 方法的任何字串中都可以使用代理項字符。不過,代理項字符在撰寫的
XML 中應該有效。例如,萬維網聯合會 (W3C) 建議不允許在元素或屬性的名稱中使用代理項字符。
如果字串包含無效的代理項對,則引發例外。

另外,可以使用 WriteSurrogateCharEntity 寫出與代理項對相對應的字符物體。字符物體以十六
進制格式寫出,并用以下公式生成:

(highChar -0xD800) * 0x400 + (lowChar -0xDC00) + 0x10000

如果字串包含無效的代理項對,則引發例外。下面的示例顯示將代理項對作為輸入的 WriteSurrogateCharEntity 方法。

C#復制
 // The following line writes &#x10000.
WriteSurrogateCharEntity ('\uDC00', '\uD800');
下面的示例生成一個代理項對檔案,將其加載到 XmlReader 中,并用新的檔案名保存檔案。
然后,原始檔案和新檔案被加載回應用程式的 XML 檔案物件模型 (DOM) 結構中以進行比較。

C#復制
 char lowChar, highChar;
char [] charArray = new char[10];
FileStream targetFile = new FileStream("SurrogatePair.xml",
      FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);

lowChar = Convert.ToChar(0xDC00);
highChar = Convert.ToChar(0xD800);
XmlTextWriter tw = new XmlTextWriter(targetFile, null);
tw.Formatting = Formatting.Indented;
tw.WriteStartElement("root");
tw.WriteStartAttribute("test", null);
tw.WriteSurrogateCharEntity(lowChar, highChar);
lowChar = Convert.ToChar(0xDC01);
highChar = Convert.ToChar(0xD801);
tw.WriteSurrogateCharEntity(lowChar, highChar);
lowChar = Convert.ToChar(0xDFFF);
highChar = Convert.ToChar(0xDBFF);
tw.WriteSurrogateCharEntity(lowChar, highChar);

// Add 10 random surrogate pairs.
// As Unicode, the high bytes are in lower
// memory; for example, word 6A21 as 21 6A.
// The high or low is in the logical sense.
Random random = new Random();
for (int i = 0; i < 10; ++i) {
      lowChar = Convert.ToChar(random.Next(0xDC00, 0xE000));
      highChar = Convert.ToChar(random.Next(0xD800, 0xDC00));
      charArray[i] = highChar;
      charArray[++i] = lowChar;
}
tw.WriteChars(charArray, 0, charArray.Length);

for (int i = 0; i < 10; ++i) {
      lowChar = Convert.ToChar(random.Next(0xDC00, 0xE000));
      highChar = Convert.ToChar(random.Next(0xD800, 0xDC00));
      tw.WriteSurrogateCharEntity(lowChar, highChar);
}

tw.WriteEndAttribute();
tw.WriteEndElement();
tw.Flush();
tw.Close();

XmlTextReader r = new XmlTextReader("SurrogatePair.xml");

r.Read();
r.MoveToFirstAttribute();
targetFile = new FileStream("SurrogatePairFromReader.xml",
       FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);

tw = new XmlTextWriter(targetFile, null);
tw.Formatting = Formatting.Indented;
tw.WriteStartElement("root");
tw.WriteStartAttribute("test", null);
tw.WriteString(r.Value);
tw.WriteEndAttribute();
tw.WriteEndElement();
tw.Flush();
tw.Close();

// Load both result files into the DOM and compare.
XmlDocument doc1 = new XmlDocument();
XmlDocument doc2 = new XmlDocument();
doc1.Load("SurrogatePair.xml");
doc2.Load("SurrogatePairFromReader.xml");
if (doc1.InnerXml != doc2.InnerXml) {
      Console.WriteLine("Surrogate Pair test case failed");
}
在使用 WriteChars 方法(一次寫出一個緩沖區的資料)寫出時,輸入中的代理項對可能
會在一個緩沖區內被意外拆分。由于代理項值是定義完善的,如果 WriteChars 遇到來自
較低范圍或者較高范圍的 Unicode 值,它將該值標識為代理項對的一半。當遇到
 WriteChars 將導致從拆分代理項對的緩沖區寫入的情況時,將引發例外。使用
  IsHighSurrogate 方法檢查緩沖區是否以高代理項字符結束。如果緩沖區中的最后一個
  字符不是高代理項,可以將該緩沖區傳遞給 WriteChars 方法。

請參見
概念
使用 XmlTextWriter 創建格式正確的 XML
XmlTextWriter 的 XML 輸出格式設定
XmlTextWriter 的命名空間功能

#endif

uj5u.com熱心網友回復:

uj5u.com熱心網友回復:

#pragma warning(disable:4996)
//...

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

標籤:圖形處理/算法

上一篇:靜止目標檢測

下一篇:MFC中如何從文本中提取資料放在編輯框中?

標籤雲
其他(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)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more