導航:首頁 > 編程語言 > java0x7f

java0x7f

發布時間:2021-12-04 21:24:46

『壹』 java中 String s= "0xFFFFFFFFFFFFFFFF";要把s轉變成long類型的數據,怎麼轉

//注意我注釋掉的代碼行所表達的書寫要求
publicclassBigNumDemo{
publicstaticvoidmain(String[]args){
//Strings="0x7FFFFFFFFFFFFFFF";
Strings="7FFFFFFFFFFFFFFF";
java.math.BigIntegerbigInteger=newjava.math.BigInteger(s,16);
System.out.println(bigInteger);
}
}

『貳』 總是提示java.exe運用程序錯誤,0X500BF974指令引用的內存0X00000E7F不能read怎麼辦

感謝網路,搜索到的答案,對你有幫助就好

內存不能為READ等的解決方案
日 期:2008-10-30 11:29:30 來源:周視 閱讀次數:37
--------------------------------------------------------------------------------
使用Windows操作系統的人有時會遇到這樣的錯誤信息:「0X????????指令引用的0x00000000內存,該內存不能written」,然後應用程序被關閉。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的常見原因。

一、應用程序沒有檢查內存分配失敗

程序需要一塊內存用以保存數據時,就需要調用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「指針」。

內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的指針,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。

若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用指針,繼續在之後的運行中使用這塊內存。真正的0地址內存區保存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即死機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。

內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統文件之後。

二、應用程序由於自身BUG引用了不正常的內存指針

在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的指針已經失效了。有可能是 「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止運行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!

像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指針不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其他隨機數字。

如果系統經常有所提到的錯誤提示,下面的建議可能會有幫助:

1.查看系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。

2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統文件、修正系統參數。有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。

3.試用新版本的應用程序。

三、解決辦法

1.問題提示:

運行某些程序的時候,有時會出現內存錯誤的提示,然後該程序就關閉。

「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。

「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。

一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。

2.故障分析:

a..硬體方面:

一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。

假如是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,就要檢查是不是內存出問題了或者和其它硬體不兼容。

b..軟體方面:

先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。

c.舉例說明:

例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。

解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,WinXP自升級,也就是WinXP升級到WinXP,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了7.0,自升級後,會被IE6.0代替。

例二:在windows xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在Windows 98里運行卻正常。

解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32 c:winntapppatchslayerui.dll。右鍵,屬性,也會出現兼容性的選項。

例三:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。

解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。

例四:播放器不能播放了,每次都提示「Ox060692f6」(每次變化)指令引用的「Oxff000011」內存不能為「read」,終止程序請按確定。

解決方法:試試重裝播放器,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。

例五:雙擊游戲的快捷方式,「Ox77f5cdO」指令引用「Oxffffffff」內存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。

解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。

例六:電腦出現錯誤信息:「0*772b548f」指令引用的「0*00303033」內存,該內存不能為「written」,然後QQ自動下線。

解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。

例七:XP系統關閉網頁時會彈出「tbrowser.exe遇到問題需要關閉」,然後有彈出0x03e7c738指令引用的0x03e7c738內存,該內存不能為read。

解決方法:先查殺一下病毒,另外如果你安裝了瀏覽增強之類的軟體,請卸掉。

例八:從桌面或開始菜單中打開任何一個程序, 出現錯誤提示:"0x........"指令引用的"0x00000000"內存,該內存不能為"read"。省略號代表可變值。而從運行中打開程序沒問題。

解決方法:運行regedit進入注冊表, 在HKEY_LOCAL_ 下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 將其他的刪除(默認鍵值當然不要刪除)。

例九:系統比較不穩定,重裝過多次系統,經常隨機地出現Explorer-應用程序錯誤,「0x4a01259d「指令引用的「0x00000000"內存。該內存不能為 「read"。要終止程序,請單擊「確定「。要調試程序,請單擊「取消」。如果點確定,windows桌面就不見了。這種問題在之前的系統也出現過,不知道是不是硬體的問題?

解決方法:內存的兼容性問題!遇到這類問題,用戶可以自行打開機器把內存的位置調動一下,看問題是否可以解決,如果問題依舊,可與你的朋友調換內存使用。

通過上述幾個例子,可以看到,出現故障的原因有好多種,下面列出已經提到和有可能發生的原因,方便查閱。

1.問題產生原因原因--解決方法

2.內存條壞了--更換內存條

3.雙內存不兼容--使用同品牌的內存或只用一條內存

4.內存質量問題--更換內存條

5.散熱問題--加強機箱內部的散熱

6.內存和主板沒插好或和其它硬體不兼容等--重插內存或換個插糟

7.硬碟有問題--更換硬碟

8.驅動問題--重裝驅動。如果是新系統,要先安裝主板驅動

9.軟體損壞--重裝軟體

10.軟體有BUG--打補丁或用最新的版本。

11.軟體和系統不兼容--給軟體打上補丁或者試試系統的兼容模式

12.軟體和軟體之間有沖突--如果最近安裝了什麼新軟體,卸載了試試

13.軟體要使用到其它相關的軟體有問題--重裝相關軟體。比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題

14.病毒問題--殺毒

15.殺毒軟體與系統或軟體沖突--由於殺毒軟體是進入底層監控系統的,可能與一些軟體沖突,卸載了試試

16.系統本身有問題--有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序,像SP的補丁,最好要打上。如果還不行重裝系統或更換其它版本的系統了。

『叄』 JAVA里兩個byte型數據怎麼合成一個16位有符號的short型數據啊兩個byte是我在單片機裡面取模求余分開的

有符號,應該是最高位是1,這個先判斷是否1。

byte b1=...;
byte b2=...;

int high=Math.abs(b1>>7);
boolean sign= (1==high);//看最高位是不是1,即符號位
b1 = (byte)( b1 & 0x7f ); //去除最高位

short a = (short)( (b1<<8) + b2);

『肆』 Android中aapt工具通過什麼機制/演算法生成R.java

資源ID是一個4位元組的無符號整數,其中,最高位元組表示Package ID,次高位元組表示Type ID,最低兩位元組表示Entry ID。
Package ID相當於是一個命名空間,限定資源的來源。Android系統當前定義了兩個資源命令空間,其中一個系統資源命令空間,它的Package ID等於0x01,另外一個是應用程序資源命令空間,它的Package ID等於0x7f。所有位於[0x01, 0x7f]之間的Package ID都是合法的,而在這個范圍之外的都是非法的Package ID。前面提到的系統資源包package-export.apk的Package ID就等於0x01,而我們在應用程序中定義的資源的Package ID的值都等於0x7f,這一點可以通過生成的R.java文件來驗證。
Type ID是指資源的類型ID。資源的類型有animator、anim、color、drawable、layout、menu、raw、string和xml等等若干種,每一種都會被賦予一個ID。
Entry ID是指每一個資源在其所屬的資源類型中所出現的次序。注意,不同類型的資源的Entry ID有可能是相同的,但是由於它們的類型不同,我們仍然可以通過其資源ID來區別開來。

『伍』 java中byte變數的范圍問題

byte是一個位元組,其中有8位,取值范圍為 -128~+127,閉區間
因為有符號,所以符號位佔一位
-128的二進制專位 1000 0000 也就是0X80 這個屬不叫溢出。。是不是你看錯了
+127就是 0111 1111 也就是0X7F。。

『陸』 java環境下實現idea演算法的加密解密

基於Java的IDEA加密演算法探討
隨著Internet的迅速發展,電子商務的浪潮勢不可擋,日常工作和數據傳輸都放在Internet網上進行傳輸,大大提高了效率,降低了成本,創造了良好的效益。但是,由於 Internet網路協議本身存在著重要的安全問題(IP包本身並不繼承任何安全特性,很容易偽造出IP包的地址、修改其內容、重播以前的包以及在傳輸途中攔截並查看包的內容),使網上的信息傳輸存在巨大的安全風險電子商務的安全問題也越來越突出。加密是電子商務中最主要的安全技術,加密方法的選取直接影響電子商務活動中信息的安全程度,在電子商務系統中,主要的安全問題都可以通過加密來解決。數據的保密性可通過不同的加密演算法對數據加密來實現。
對我國來講,雖然可以引進很多的外國設備,但加密設備不能依靠引進,因為它涉及到網路安全、國家機密信息的安全,所以必須自己研製。當前國際上有許多加密演算法,其中DES(Data Encryption Standard)是發明最早的用得最廣泛的分組對稱加密演算法,DES用56位蜜鑰加密64位明文,輸出64位密文,DES的56位密鑰共有256 種可能的密鑰,但歷史上曾利用窮舉攻擊破解過DES密鑰,1998年電子邊境基金會(EFF)用25萬美元製造的專用計算機,用56小時破解了DES的密鑰,1999年,EFF用22小時完成了破解工作,使DES演算法受到了嚴重打擊,使它的安全性受到嚴重威脅。因為JAVA語言的安全性和網路處理能力較強,本文主要介紹使用IDEA(Internation Data Encryption Algorithm )數據加密演算法在Java環境下實現數據的安全傳輸。

一、IDEA數據加密演算法

IDEA數據加密演算法是由中國學者來學嘉博士和著名的密碼專家 James L. Massey 於1990年聯合提出的。它的明文和密文都是64比特,但密鑰長為128比特。IDEA 是作為迭代的分組密碼實現的,使用 128 位的密鑰和 8 個循環。這比 DES 提供了更多的 安全性,但是在選擇用於 IDEA 的密鑰時,應該排除那些稱為「弱密鑰」的密鑰。DES 只有四個弱密鑰和 12 個次弱密鑰,而 IDEA 中的弱密鑰數相當可觀,有 2 的 51 次方個。但是,如果密鑰的總數非常大,達到 2 的 128 次方個,那麼仍有 2 的 77 次方個密鑰可供選擇。IDEA 被認為是極為安全的。使用 128 位的密鑰,蠻力攻擊中需要進行的測試次數與 DES 相比會明顯增大,甚至允許對弱密鑰測試。而且,它本身也顯示了它尤其能抵抗專業形式的分析性攻擊。

二、Java密碼體系和Java密碼擴展

Java是Sun公司開發的一種面向對象的編程語言,並且由於它的平台無關性被大量應用於Internet的開發。Java密碼體系(JCA)和Java密碼擴展(JCE)的設計目的是為Java提供與實現無關的加密函數API。它們都用factory方法來創建類的常式,然後把實際的加密函數委託給提供者指定的底層引擎,引擎中為類提供了服務提供者介面在Java中實現數據的加密/解密,是使用其內置的JCE(Java加密擴展)來實現的。Java開發工具集1.1為實現包括數字簽名和信息摘要在內的加密功能,推出了一種基於供應商的新型靈活應用編程介面。Java密碼體系結構支持供應商的互操作,同時支持硬體和軟體實現。Java密碼學結構設計遵循兩個原則:(1)演算法的獨立性和可靠性。(2)實現的獨立性和相互作用性。演算法的獨立性是通過定義密碼服務類來獲得。用戶只需了解密碼演算法的概念,而不用去關心如何實現這些概念。實現的獨立性和相互作用性通過密碼服務提供器來實現。密碼服務提供器是實現一個或多個密碼服務的一個或多個程序包。軟體開發商根據一定介面,將各種演算法實現後,打包成一個提供器,用戶可以安裝不同的提供器。安裝和配置提供器,可將包含提供器的ZIP和JAR文件放在CLASSPATH下,再編輯Java安全屬性文件來設置定義一個提供器。Java運行環境Sun版本時,提供一個預設的提供器Sun。

三、Java環境下的實現

1.加密過程的實現

void idea_enc( int data11[], /*待加密的64位數據首地址*/ int key1[]){

int i ;

int tmp,x;

int zz[]=new int[6];

for ( i = 0 ; i < 48 ; i += 6) { /*進行8輪循環*/

for(int j=0,box=i; j<6; j++,box++){

zz[j]=key1[box];

}

x = handle_data(data11,zz);

tmp = data11[1]; /*交換中間兩個*/

data11[1] = data11[2];

data11[2] = tmp;

}

tmp = data11[1]; /*最後一輪不交換*/

data11[1] = data11[2];

data11[2] = tmp;

data11[0] = MUL(data11[0],key1[48]);

data11[1] =(char)((data11[1] + key1[49])%0x10000);

data11[2] =(char)((data11[2] + key1[50])%0x10000);

data11[3] = MUL(data11[3],key1[51]);

}

2.解密過程的實現

void key_decryExp(int outkey[])/*解密密鑰的變逆處理*/

{ int tmpkey[] = new int[52] ;

int i;

for ( i = 0 ; i < 52 ; i++) {

tmpkey[i] = outkey[ wz_spkey[i] ] ; /*換位*/

}

for ( i = 0 ; i < 52 ; i++) {

outkey[i] = tmpkey[i];

}

for ( i = 0 ; i < 18 ; i++) {

outkey[wz_spaddrever[i]] = (char)(65536-outkey[wz_spaddrever[i]]) ; /*替換成加法逆*/

}

for ( i = 0 ; i < 18 ; i++){

outkey[wz_spmulrevr[i]] =(char)(mulInv(outkey[wz_spmulrevr[i]] )); /*替換成乘法逆*/

}

}

四、總結

在實際應用中,我們可以使用Java開發工具包(JDK)中內置的對Socket通信的支持,通過JCE中的Java流和鏈表,加密基於Socket的網路通信.我們知道,加密/解密是數據傳輸中保證數據完整性的常用方法,Java語言因其平台無關性,在Internet上的應用非常之廣泛.使用Java實現基於IDEA的數據加密傳輸可以在不同的平台上實現並具有實現簡潔、安全性強等優點。

『柒』 Java的問題!把byte型轉換成float類型!

java數據可以大體分成兩類 整形和浮點型 byte是整形 只可以表示整數內 float是浮點型 可以表示整數和小數 並且 byte的表示範圍容是-2的7次方到 2的7次方-1 float類型的范圍是(2-2-23)·2127 2-149(這里不能打次方 你可以去類庫查)
范圍差別這么大當然會影響數據的精度

『捌』 0x7f是什麼意思

0x7f表示的是一個十六進制數7f,換算成十進制數是127。

在C語言、C++、Shell、Python、Java語言及其他相近的語言使用字首「0x」表示十六進制數,例如「0x5A3」。開頭的「0」令解析器更易辨認數,而「x」則代表十六進制(就如「O」代表八進制)。在「0x」中的「x」可以大寫或小寫。對於字元量C語言中則以x+兩位十六進制數的方式表示,如xFF。

(8)java0x7f擴展閱讀:

十進制轉十六進制

采余數定理分解,例如將487710轉成十六進制:

4877÷16=304....13(D)

304÷16=19....0

19÷16=1....3

1÷16=0....1

這樣就計到4877(10進制)10=130D(16進制)。

『玖』 如何用java實現一個加密演算法(現有的這個是C寫的,想要一個java的)菜鳥一個,求高手幫忙····

java啥沒有,從base64,md5,到數字簽名都有,你這個應該是MAC演算法,java都有這個類...
樓上說的對,參見java.security 包,網路一下java加密多得是

『拾』 java如何判斷編碼是否是utf8編碼

UTF-8編碼規范及如何判斷文本是UTF-8編碼的
UTF-8的編碼規則很簡單,只有二條:
1)對於單位元組的符號,位元組的第一位設為0,後面7位為這個符號的unicode碼。因此對於英語字母,UTF-8編碼和ASCII碼是相同的。
2)對於n位元組的符號(n>1),第一個位元組的前n位都設為1,第n+1位設為0,後面位元組的前兩位一律設為10。剩下的沒有提及的二進制位,全部為這個符號的unicode碼。
根據以上說明下面給出一段java代碼判斷UTF-8格式
/**
*UTF-8編碼格式判斷
*
*@paramrawtext
*需要分析的數據
*@return是否為UTF-8編碼格式
*/
publicstaticbooleanisUTF8(byte[]rawtext){
intscore=0;
inti,rawtextlen=0;
intgoodbytes=0,asciibytes=0;
//MaybealsouseUTF8ByteOrderMark:EFBBBF
//
rawtextlen=rawtext.length;
for(i=0;i<rawtextlen;i++){
if((rawtext[i]&(byte)0x7F)==rawtext[i]){
//最高位是0的ASCII字元
asciibytes++;
//IgnoreASCII,canthrowoffcount
}elseif(-64<=rawtext[i]&&rawtext[i]<=-33
//-0x40~-0x21
&&//Twobytes
i+1<rawtextlen&&-128<=rawtext[i+1]
&&rawtext[i+1]<=-65){
goodbytes+=2;
i++;
}elseif(-32<=rawtext[i]
&&rawtext[i]<=-17
&&//Threebytes
i+2<rawtextlen&&-128<=rawtext[i+1]
&&rawtext[i+1]<=-65&&-128<=rawtext[i+2]
&&rawtext[i+2]<=-65){
goodbytes+=3;
i+=2;
}
}
if(asciibytes==rawtextlen){
returnfalse;
}
score=100*goodbytes/(rawtextlen-asciibytes);
//Ifnotabove98,
//Allowsforsome(few)badformedsequences
if(score>98){
returntrue;
}elseif(score>95&&goodbytes>30){
returntrue;
}else{
returnfalse;
}

另外對於正規的文本文件來說UTF-8的文件開頭有3個位元組來標識該文本是UTF-8編碼
EF,BB,BF三個位元組
但通常不採用以下這種方案因為許多文件不標准
(byte[]b)
{
if(b!=null&&b.length>3)
{
byteutf8[]={(byte)0xEF,(byte)0xBB,(byte)0xBF};
if((b[0]==utf8[0])&&(b[1]==utf8[1])&&(b[2]==utf8[2]))
returntrue;
}
returnfalse;
}

閱讀全文

與java0x7f相關的資料

熱點內容
著名片站 瀏覽:103
一段簡單的編程由什麼組成 瀏覽:561
手機android文件夾沒有內容 瀏覽:281
寶書網txt官網入口當書網 瀏覽:10
四創大數據 瀏覽:547
少兒編程能做出哪些游戲 瀏覽:156
大數據分析趙麗穎價值 瀏覽:2
iphone來自電腦的照片怎麼刪除 瀏覽:648
姜惠恩禁止的愛 瀏覽:981
三君四妾by小透明 瀏覽:585
修車女女電影 瀏覽:451
數學奧數和編程學哪個好 瀏覽:39
能看的視頻網站推薦一下你懂 瀏覽:208
mvciis配置文件 瀏覽:87
男主姓傅 瀏覽:742
ai全是用什麼編程的 瀏覽:75
手機言情電影 瀏覽:12
w7系統解壓文件 瀏覽:660
新型網路技術演進方向 瀏覽:649
大數據分析的基本方面 瀏覽:42

友情鏈接