同源碼
㈠ 原碼,反碼,補碼和移碼: 原碼:1001101,反碼,補碼,移碼各是多少
反碼:1,110010(除符號位以外,各位取反)
補碼:1,110011(除符號位以外,各位取反,末位加一)
移碼:0,110011(對補碼符號位取反)
注意:
1、首先判斷原碼的正負,因為對於正數,其原碼、補碼反碼表示形式相同(符號位為0,數值部分與真值相同)
2、對於反碼和補碼,要區別:已知[x補],求[-x補]的題目(連同符號位各位取反,末位加一)
(1)同源碼擴展閱讀:
原碼、反碼、補碼、移碼的運算方法
運算過程:原碼->反碼->補碼->移碼
原碼
:二進制(開頭第一個表示符號0正1負)
反碼
:在原碼的基礎上,符號位不動,其他位取反
---注意,任何正數的源碼=反碼=補碼,而負數都是通過補碼表示的。
補碼
:在反碼的基礎上,運算+1
---注意,任何正數的源碼=反碼=補碼,而負數都是通過補碼表示的。
公式:兩數補碼的和==兩數和的補碼。
移碼
:在補碼的基礎上,符號位取反
例如:
例子3
10+(-10)=0
(使用補碼)
10(十進制)
---
00001010(源碼)----同源碼(反碼)----同源碼(補碼)
-10(十進制)
---
10001010(源碼)----11110101(反碼)----11110110(補碼)
00001010+
10的源碼----注意正數用補碼(值等同於源碼)
11110110
-10的補碼----注意負數用補碼
---------
00000000
得到了0的補碼
㈡ 自己可以編譯安卓源碼嗎
用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:
sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」
其中[email protected]為你自己的郵箱.
簡要說明
android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.
源碼下載
由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)
repo工具下載及安裝
通過執行以下命令實現repo工具的下載和安裝
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:
我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:
這里寫圖片描述
執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.
錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:
通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.
結束吧
到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.
㈢ 什麼是JDBC什麼是ODBC以及它們有什麼區別(具體點,謝謝)
----目前許多資料庫系統均支持SQL,對於由SQL資料庫組成的異構資料庫系統,JDBC和ODBC為訪問其異構成員提供了統一的方式,也為各異構成員之間的協作和多個成員之上的操作打下了基礎。本文簡單介紹了JDBC和ODBC對各個異構的資料庫進行統一訪問和協作的原理及其應用。
ODBC
----ODBC(Open DataBase Connectivity)是微軟倡導的、當前被業界廣泛接受的、用於資料庫訪問的應用程序編程介面(API),它以X/Open和 ISO/IEC的調用級介面(CLI)規范為基礎,並使用結構化查詢語言(SQL)作為其資料庫訪問語言。 ODBC總體結構有四個組件:
----· 應用程序執行處理並調用ODBC API函數,以提交 SQL語句並檢索結果。
----· 驅動程序管理器(Driver Manager)根據應用程序需要載入/卸載驅動程序,處理ODBC函數調用,或把它們傳送到驅動程序。
----· 驅動程序處理ODBC函數調用,提交SQL請求到一個指定的數據源,並把結果返回到應用程序。如果有必要,驅動程序修改一個應用程序請求,以使請求與相關的DBMS支持的語法一致。
----· 數據源包括用戶要訪問的數據及其相關的操作系統、DBMS及用於訪問DBMS的網路平台。
----ODBC驅動程序的使用把應用程序從具體的資料庫調用中隔離開來,驅動程序管理器針對特定資料庫的各個驅動程序進行集中管理,並向應用程序提供統一的標准介面,這就為ODBC的開放性奠定了基礎。
----資料庫獨立性
----ODBC是為最大的互用性而設計的,要求一個應用程序有用相同的源代碼(不用重新編譯或重新鏈接)訪問不同的資料庫管理系統(DBMS)的能力。
----ODBC定義了一個標準的調用層介面(CLI)。這包含 X/Open和ISO/IEC的CLI規范中的所有函數,並提供應用程序普遍需要的附加函數。每個支持ODBC的DBMS需要不同的庫或驅動程序,驅動程序實現ODBC API中的函數。當需要改變驅動程序時,應用程序不需要重新編譯或者重新鏈接,只是動態載入新的驅動程序,並調用其中的函數即可。如果要同時訪問多個DBMS系統,應用程序可載入多個驅動程序。如何支持驅動程序取決於操作系統,例如,在Windows操作系統上,驅動程序是動態鏈接庫(DLL)。
----使用相同源代碼的應用程序訪問不同的DBMS,體現了 ODBC的資料庫獨立性。
----對資料庫特殊功能的支持
----各個DBMS參照的標准、提供的功能不盡相同,應用程序如何以統一的介面使用各個DBMS特有的功能呢?
----一方面,ODBC為所有DBMS功能都定義了公共介面。這些DBMS功能比多數DBMS支持的更多,但只要求驅動程序實現這些功能的一個子集。另一方面,ODBC定義了API和SQL語法一致層,它規定驅動程序應支持的基本功能。 ODBC還提供兩個函數(SQLGetInfo和SQLGetFunctions)返回關於驅動程序和DBMS能力的一般信息及驅動程序支持的函數列表。因此,應用程序可以檢查DBMS支持的特殊功能。
----這樣,編寫應用程序時,就可以檢查並自動使用各個驅動程序對應的DBMS所支持的特殊功能。這樣做的優點是當增加DBMS支持的功能時,應用程序不需要改變,只需安裝更新的驅動程序,應用程序便可以自動發現並使用這些功能。
----互操作能力
----通過使用多個驅動程序可以同時訪問多個DBMS系統。 ODBC提供的Driver Manager實現所有的ODBC函數,多數是傳遞調用給驅動程序中的ODBC 函數,並靜態鏈接應用程序,或在應用程序運行時載入它。這樣,應用程序在Driver Manager 中按名調用驅動ODBC函數,而不是通過每個驅動程序中的指針。當應用程序需要通過特定的驅動程序時,它首先需要一個標識驅動程序的連接句柄。Driver Manager載入驅動程序,並存儲每個驅動程序中的函數地址。要使驅動程序調用一個ODBC函數,可在應用程序調用 Driver Manager中的函數,並為驅動程序傳送連接句柄,然後Driver Manager使用以前存儲的地址來調用函數。
----ODBC可以同時連接到多個DBMS,解決了同時訪問多個DBMS的問題,提供了異構成員資料庫之間互操作的能力。
JDBC
----JDBC(Java DataBase Connectivity)是Java與資料庫的介面規范,JDBC定義了一個支持標准SQL功能的通用低層的應用程序編程介面(API),它由Java 語言編寫的類和介面組成,旨在讓各資料庫開發商為Java程序員提供標準的資料庫API。 JDBC API定義了若干Java中的類,表示資料庫連接、SQL指令、結果集、資料庫元數據等。它允許Java程序員發送SQL指令並處理結果。通過驅動程序管理器,JDBC API可利用不同的驅動程序連接不同的資料庫系統。
----JDBC與ODBC都是基於X/Open的SQL調用級介面, JDBC的設計在思想上沿襲了ODBC,同時在其主要抽象和SQL CLI實現上也沿襲了ODBC,這使得JDBC容易被接受。JDBC的總體結構類似於ODBC,也有四個組件:應用程序、驅動程序管理器、驅動程序和數據源。
----JDBC保持了ODBC的基本特性,也獨立於特定資料庫。使用相同源代碼的應用程序通過動態載入不同的JDBC驅動程序,可以訪問不同的DBMS。連接不同的DBMS時,各個DBMS之間僅通過不同的URL進行標識。JDBC的 DatabaseMetaData介面提供了一系列方法,可以檢查DBMS對特定特性的支持,並相應確定有什麼特性,從而能對特定資料庫的特性予以支持。與ODBC一樣,JDBC也支持在應用程序中同時建立多個資料庫連接,採用JDBC可以很容易地用SQL語句同時訪問多個異構的資料庫,為異構的資料庫之間的互操作奠定基礎。
----但是,JDBC除了具有ODBC的上述特點外,更具有對硬體平台、操作系統異構性的支持。這主要是因為ODBC使用的是C語言,而JDBC使用的是Java語言。Java語言具有與平台無關、移植性強、安全性高、穩定性好、分布式、面向對象等眾多優點,而JDBC確保了「100%純Java」的解決方案,利用Java的平台無關性, JDBC應用程序可以自然地實現跨平台特性,因而更適合於Internet上異構環境的資料庫應用。
----此外,JDBC驅動程序管理器是內置的,驅動程序本身也可通過Web瀏覽器自動下載,無須安裝、配置;而ODBC驅動程序管理器和ODBC驅動程序必須在每台客戶機上分別安裝、配置。
JDBC和ODBC在Internet上的應用
----JDBC和ODBC由於具有資料庫獨立性甚至平台無關性,因而對Internet上異構資料庫的訪問提供了很好的支持。
----在Internet上訪問資料庫通常採用三層模式。以JDBC為例,在三層模式中客戶端的Java Applet主要作為用戶界面,它不直接與資料庫交換信息,而是通過自定義的應用層網路協議與應用伺服器交互,應用伺服器通過JDBC與資料庫伺服器交換信息,並實現應用邏輯。DM3的JDBC和ODBC驅動程序支持目前流行的ASP和JSP技術,可以分別藉助ODBC和JDBC同時訪問Internet上多個異構的資料庫。
----ASP是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。ASP使用VBScript之類的腳本語言,它在HTML代碼中嵌入某種程序代碼,由HTML代碼負責描述信息的顯示樣式,由嵌入的程序代碼來描述處理邏輯。在ASP 下,VBScript代碼被ASP引擎在Web伺服器端解釋執行,執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。這里,VBScript代碼可以通過ODBC訪問多個異構的資料庫。
----JSP是一種基於Java Servlet的Web開發技術,它和ASP 非常相似,但又有區別:在JSP下,嵌入HTML頁面的程序代碼是Java代碼;頁面中嵌入的程序代碼被編譯成Servlet(這種編譯操作僅在對JSP頁面的第一次請求時發生)並由Java 虛擬機執行。這里Java代碼可以通過JDBC訪問多個異構的資料庫,其平台無關性特別好。當前,Internet上的資料庫應用已越來越多,JDBC和ODBC必將在Internet上的異構資料庫訪問中發揮重要的作用。