亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 理解有符號數和無符號數 - java-jinguo - javaeye技術網站.htm

?? 對進制轉換詳細的說明文檔
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0037)http://jinguo.javaeye.com/blog/212049 -->
<HTML dir=ltr xml:lang="zh-CN" 
xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<META 
content="  理解有符號數和無符號數負數在計算機中如何表示呢?  這一點,你可能聽過兩種不同的回答。  一種是教科書,它會告訴你:計算機用“補碼”表示負數。可是有關“補碼”的概念一說就得一節課,這一些我們需要在第6章中用一章的篇幅講2進制的一切。再者,用“補碼”表示負數,其實一種公式,公式的作用在于告訴你,想得問題的答案,應該如何計算。卻并沒有告訴你為什么用這個公式就可以和答案?   另一種是一些程序員告訴你 ..." 
name=description>
<META content="理解有符號數和無符號數  理解有符號數和無符號數" name=keywords><LINK 
href="/images/favicon.ico" type=image/x-icon rel="shortcut icon"><LINK 
title=Java-Jinguo href="/rss" type=application/rss+xml rel=alternate><LINK 
media=screen href="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/blog.css" 
type=text/css rel=stylesheet><LINK media=screen 
href="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/blue.css" type=text/css 
rel=stylesheet>
<SCRIPT src="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/application.js" 
type=text/javascript></SCRIPT>
<LINK media=screen 
href="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/SyntaxHighlighter.css" 
type=text/css rel=stylesheet>
<SCRIPT src="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/shCoreCommon.js" 
type=text/javascript></SCRIPT>

<STYLE>DIV#main {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; WIDTH: 740px; PADDING-TOP: 0px; BACKGROUND-COLOR: transparent; BORDER-RIGHT-WIDTH: 0px
}
</STYLE>
<LINK media=screen href="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/ui.css" 
type=text/css rel=stylesheet>
<SCRIPT src="理解有符號數和無符號數 - Java-Jinguo - JavaEye技術網站.files/compress.js" 
type=text/javascript></SCRIPT>

<META content="MSHTML 6.00.2900.3492" name=GENERATOR></HEAD>
<BODY>
<DIV id=header>
<DIV id=blog_site_nav><A class=homepage href="http://www.javaeye.com/">首頁</A> <A 
href="http://www.javaeye.com/news">新聞</A> <A 
href="http://www.javaeye.com/forums">論壇</A> <A 
href="http://www.javaeye.com/blogs">博客</A> <A 
href="http://job.javaeye.com/">招聘</A> <A id=msna onclick="return false;" 
href="http://jinguo.javaeye.com/blog/212049#"><U>更多</U> <SMALL>▼</SMALL></A> 
<DIV class=quick_menu style="DISPLAY: none"><A 
href="http://www.javaeye.com/ask">問答</A> <A 
href="http://www.javaeye.com/wiki">知識庫</A> <A 
href="http://www.javaeye.com/groups">圈子</A> <A 
href="http://www.javaeye.com/search">搜索</A> </DIV></DIV>
<DIV id=user_nav><A class=welcome title=登錄 
href="http://jinguo.javaeye.com/login">您還未登錄 !</A> <A style="COLOR: red" 
href="http://www.javaeye.com/all">我的應用</A> <A 
href="http://jinguo.javaeye.com/login">登錄</A> <A class=nobg 
href="http://jinguo.javaeye.com/signup">注冊</A> </DIV></DIV>
<DIV id=page>
<DIV class=clearfix id=branding>
<DIV id=blog_name>
<H1><A href="http://jinguo.javaeye.com/">Java-Jinguo</A></H1></DIV>
<DIV id=blog_preview></DIV>
<DIV id=blog_domain>永久域名 <A 
href="http://jinguo.javaeye.com/">http://jinguo.javaeye.com/</A></DIV></DIV>
<DIV class=clearfix id=content>
<DIV id=main>
<DIV class=blog_main>
<DIV id=blog_nav>
<DIV id=pre_next><A class=next 
href="http://jinguo.javaeye.com/blog/212590">OpenSessionInView詳解</A> | <A 
class=pre href="http://jinguo.javaeye.com/blog/211812">用Java實現幾種常見的排序算法</A> 
</DIV></DIV>
<DIV class=blog_title>
<DIV class=date><SPAN class=year>2008</SPAN><SPAN class=sep_year>-</SPAN><SPAN 
class=month>07</SPAN><SPAN class=sep_month>-</SPAN><SPAN 
class=day>06</SPAN></DIV>
<H3 class="" title=""><A 
href="http://jinguo.javaeye.com/blog/212049">理解有符號數和無符號數</A></H3><STRONG>關鍵字: 
理解有符號數和無符號數</STRONG> </DIV>
<DIV class=blog_content><BR>理解有符號數和無符號數負數在計算機中如何表示呢? <BR><BR>這一點,你可能聽過兩種不同的回答。 
<BR><BR>一種是教科書,它會告訴你:計算機用“補碼”表示負數。可是有關“補碼”的概念一說就得一節課,這一些我們需要在第6章中用一章的篇幅講2進制的一切。再者,用“補碼”表示負數,其實一種公式,公式的作用在于告訴你,想得問題的答案,應該如何計算。卻并沒有告訴你為什么用這個公式就可以和答案? 
<BR><BR>另一種是一些程序員告訴你的:用二進制數的最高位表示符號,最高位是0,表示正數,最高位是1,表示負數。這種說法本身沒錯,可是如果沒有下文,那么它就是錯的。至少它不能解釋,為什么字符類型的-1用二進制表示是“1111 
1111”(16進制為FF);而不是我們更能理解的“1000 0001”。(為什么說后者更好理解呢?因為既然說最高位是1時表示負數,那1000 
0001不是正好是-1嗎?)。 <BR><BR>讓我們從頭說起。 <BR><BR>1、你自已決定是否需要有正負。 
<BR><BR>就像我們必須決定某個量使用整數還是實數,使用多大的范圍數一樣,我們必須自已決定某個量是否需要正負。如果這個量不會有負值,那么我們可以定它為帶正負的類型。 
<BR><BR>在計算機中,可以區分正負的類型,稱為有符類型,無正負的類型(只有正值),稱為無符類型。 
<BR><BR>數值類型分為整型或實型,其中整型又分為無符類型或有符類型,而實型則只有符類型。 <BR><BR>字符類型也分為有符和無符類型。 
<BR><BR>比如有兩個量,年齡和庫存,我們可以定前者為無符的字符類型,后者定為有符的整數類型。 <BR><BR>2、使用二制數中的最高位表示正負。 
<BR><BR>首先得知道最高位是哪一位?1個字節的類型,如字符類型,最高位是第7位,2個字節的數,最高位是第15位,4個字節的數,最高位是第31位。不同長度的數值類型,其最高位也就不同,但總是最左邊的那位(如下示意)。字符類型固定是1個字節,所以最高位總是第7位。 
<BR><BR>(紅色為最高位) <BR><BR>單字節數: 1111 1111 <BR><BR>雙字節數: 1111 1111 1111 1111 
<BR><BR>四字節數: 1111 1111 1111 1111 1111 1111 1111 1111 <BR><BR>  
<BR><BR>當我們指定一個數量是無符號類型時,那么其最高位的1或0,和其它位一樣,用來表示該數的大小。 
<BR><BR>當我們指定一個數量是無符號類型時,此時,最高數稱為“符號位”。為1時,表示該數為負值,為0時表示為正值。 <BR><BR>  
<BR><BR>3、無符號數和有符號數的范圍區別。 
<BR><BR>無符號數中,所有的位都用于直接表示該值的大小。有符號數中最高位用于表示正負,所以,當為正值時,該數的最大值就會變小。我們舉一個字節的數值對比: 
<BR><BR>無符號數: 1111 1111&nbsp;&nbsp;&nbsp; 值:255 1* 27 + 1* 26 + 1* 25 + 1* 24 + 
1* 23 + 1* 22 + 1* 21 + 1* 20 <BR><BR>有符號數: 0111 1111&nbsp;&nbsp;&nbsp; 
值:127&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1* 26 + 1* 25 + 1* 
24 + 1* 23 + 1* 22 + 1* 21 + 1* 20 <BR><BR>  
<BR><BR>同樣是一個字節,無符號數的最大值是255,而有符號數的最大值是127。原因是有符號數中的最高位被挪去表示符號了。并且,我們知道,最高位的權值也是最高的(對于1字節數來說是2的7次方=128),所以僅僅少于一位,最大值一下子減半。 
<BR><BR>不過,有符號數的長處是它可以表示負數。因此,雖然它的在最大值縮水了,卻在負值的方向出現了伸展。我們仍一個字節的數值對比: 
<BR><BR>無符號數:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0 ----------------- 255 
<BR><BR>有符號數:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -128 --------- 0 
---------- 127 <BR><BR>  <BR><BR>同樣是一個字節,無符號的最小值是 0 
,而有符號數的最小值是-128。所以二者能表達的不同的數值的個數都一樣是256個。只不過前者表達的是0到255這256個數,后者表達的是-128到+127這256個數。 
<BR><BR>一個有符號的數據類型的最小值是如何計算出來的呢? 
<BR><BR>有符號的數據類型的最大值的計算方法完全和無符號一樣,只不過它少了一個最高位(見第3點)。但在負值范圍內,數值的計算方法不能直接使用1* 26 + 
1* 25 
的公式進行轉換。在計算機中,負數除為最高位為1以外,還采用補碼形式進行表達。所以在計算其值前,需要對補碼進行還原。這些內容我們將在第六章中的二進制知識中統一學習。 
<BR><BR>這里,先直觀地看一眼補碼的形式: <BR><BR>以我們原有的數學經驗,在10進制中:1 表示正1,而加上負號:-1 表示和1相對的負值。 
<BR><BR>那么,我們會很容易認為在2進制中(1個字節): 0000 0001 表示正1,則高位為1后:1000 0001應該表示-1。 
<BR><BR>然而,事實上計算機中的規定有些相反,請看下表: <BR><BR><BR>二進制值(1字節) 十進制值 <BR>1000 0000 -128 
<BR>1000 0001 -127 <BR>1000 0010 -126 <BR>1000 0011 -125 <BR>... ... <BR>1111 
1110 -2 <BR>1111 1111 -1 <BR><BR>  
<BR><BR>首先我們看到,從-1到-128,其二進制的最高位都是1(表中標為紅色),正如我們前面的學。 <BR><BR>然后我們有些奇怪地發現,1000 
0000 并沒有拿來表示 -0;而1000 0001也不是拿來直觀地表示-1。事實上,-1 用1111 1111來表示。 
<BR><BR>怎么理解這個問題呢?先得問一句是-1大還是-128大? <BR><BR>當然是 -1 
大。-1是最大的負整數。以此對應,計算機中無論是字符類型,或者是整數類型,也無論這個整數是幾個字節。它都用全1來表示 -1。比如一個字節的數值中:1111 
1111表示-1,那么,1111 1111 - 1 是什么呢?和現實中的計算結果完全一致。1111 1111 - 1 = 1111 1110,而1111 
1110就是-2。這樣一直減下去,當減到只剩最高位用于表示符號的1以外,其它低位全為0時,就是最小的負值了,在一字節中,最小的負值是1000 
0000,也就是-128。 <BR><BR>我們以-1為例,來看看不同字節數的整數中,如何表達-1這個數: <BR><BR>字節數 二進制值 十進制值 
<BR>單字節數 1111 1111 -1 <BR>雙字節數 1111 1111 1111 1111 -1 <BR>四字節數 1111 1111 1111 
1111 1111 1111 1111 1111 -1 <BR><BR>  <BR><BR>可能有同學這時會混了:為什么 1111 1111 
有時表示255,有時又表示-1?所以我再強調一下本節前面所說的第2點:你自已決定一個數是有符號還是無符號的。寫程序時,指定一個量是有符號的,那么當這個量的二進制各位上都是1時,它表示的數就是-1;相反,如果事選聲明這個量是無符號的,此時它表示的就是該量允許的最大值,對于一個字節的數來說,最大值就是255。 
<BR><BR><BR>原碼、反碼、補碼 <BR><BR>我們已經知道計算機中,所有數據最終都是使用二進制數表達。 
<BR><BR>我們也已經學會如何將一個10進制數如何轉換為二進制數。 <BR><BR>不過,我們仍然沒有學習一個負數如何用二進制表達。 <BR><BR>  
<BR><BR>比如,假設有一 int 類型的數,值為5,那么,我們知道它在計算機中表示為: <BR><BR>00000000 00000000 
00000000 00000101 <BR><BR>5轉換成二制是101,不過int類型的數占用4字節(32位),所以前面填了一堆0。 
<BR><BR>現在想知道,-5在計算機中如何表示? <BR><BR>  <BR><BR>在計算機中,負數以其正值的補碼形式表達。 
<BR><BR>什么叫補碼呢?這得從原碼,反碼說起。 <BR><BR>  <BR><BR>原碼:一個整數,按照絕對值大小轉換成的二進制數,稱為原碼。 
<BR><BR>比如 00000000 00000000 00000000 00000101 是 5的 原碼。 <BR><BR>  
<BR><BR>反碼:將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。 <BR><BR>取反操作指:原為1,得0;原為0,得1。(1變0; 0變1) 
<BR><BR>比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 
11111010。 <BR><BR>稱:11111111 11111111 11111111 11111010 是 00000000 00000000 
00000000 00000101 的反碼。 <BR><BR>反碼是相互的,所以也可稱: <BR><BR>11111111 11111111 11111111 
11111010 和 00000000 00000000 00000000 00000101 互為反碼。 <BR><BR>  
<BR><BR>補碼:反碼加1稱為補碼。 <BR><BR>也就是說,要得到一個數的補碼,先得到反碼,然后將反碼加上1,所得數稱為補碼。 
<BR><BR>比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 
11111010。 <BR><BR>那么,補碼為: <BR><BR>11111111 11111111 11111111 11111010 + 1 = 
11111111 11111111 11111111 11111011 <BR><BR>  <BR><BR>所以,-5 在計算機中表達為:11111111 
11111111 11111111 11111011。轉換為十六進制:0xFFFFFFFB。 <BR><BR>  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片日本大片免费观看| 成人自拍视频在线观看| 欧美日韩国产123区| 一区二区三区日韩精品| 色婷婷综合久久久久中文一区二区| 一区在线观看视频| 欧美日韩免费高清一区色橹橹| 亚洲成人在线网站| 91精品国产aⅴ一区二区| 久88久久88久久久| 国产精品嫩草影院av蜜臀| 91美女视频网站| 视频一区欧美日韩| 26uuu精品一区二区| 高清国产一区二区三区| 亚洲精品美腿丝袜| 精品欧美一区二区久久| 国产69精品久久777的优势| 亚洲免费三区一区二区| 欧美喷水一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 蜜臀精品一区二区三区在线观看 | 一本色道久久加勒比精品| 亚洲主播在线播放| 中文字幕一区二区在线播放| 99re在线精品| 麻豆国产91在线播放| 国产日韩精品一区| 在线精品观看国产| 国产高清精品久久久久| 亚洲一区二区中文在线| 26uuu另类欧美亚洲曰本| 91视频免费看| 精品一区二区免费在线观看| 中文字幕一区二区三区蜜月| 欧美精品v国产精品v日韩精品| 国产成人免费视频| 视频一区二区三区在线| 中文字幕一区二区三区精华液 | 自拍偷拍亚洲综合| 日韩一区二区电影网| 白白色 亚洲乱淫| 久久se精品一区精品二区| 亚洲欧美视频一区| 精品福利在线导航| 欧美日本高清视频在线观看| www.性欧美| 国产精品亚洲一区二区三区妖精 | 一区二区三区四区精品在线视频| 91精品国产乱| 欧美无砖专区一中文字| 国产成人啪免费观看软件| 首页亚洲欧美制服丝腿| 亚洲免费在线观看| 国产精品免费观看视频| 欧美一级免费观看| 欧美午夜精品免费| 91免费看`日韩一区二区| 国产麻豆精品视频| 青青草原综合久久大伊人精品优势 | 日韩精品一级二级| 亚洲综合久久久久| 亚洲欧美激情插| 亚洲国产精品二十页| 亚洲二区在线视频| 亚洲欧美一区二区三区极速播放 | 国产成人午夜精品影院观看视频| 视频一区欧美日韩| 视频一区在线视频| 午夜一区二区三区视频| 一区二区三区精密机械公司| 1024亚洲合集| 亚洲欧美日韩久久| 1024国产精品| 亚洲精品高清在线观看| 亚洲精品免费在线播放| 一区二区三区不卡视频在线观看| 一色屋精品亚洲香蕉网站| 中文字幕精品一区| 中文字幕日韩一区| 亚洲桃色在线一区| 亚洲夂夂婷婷色拍ww47| 亚洲一区二区三区在线看| 亚洲国产精品久久人人爱蜜臀| 一区二区三区.www| 亚洲444eee在线观看| 首页综合国产亚洲丝袜| 美国三级日本三级久久99| 韩国视频一区二区| 国产精品一二三区| zzijzzij亚洲日本少妇熟睡| 91视频一区二区三区| 欧美日韩亚州综合| 日韩久久精品一区| 国产精品亲子乱子伦xxxx裸| 亚洲欧美在线另类| 午夜精品在线视频一区| 久久99久久久欧美国产| 国产不卡视频在线观看| 91美女在线观看| 在线播放91灌醉迷j高跟美女 | 偷拍一区二区三区| 久久精品国产77777蜜臀| 国产经典欧美精品| 色婷婷久久久综合中文字幕| 欧美日韩国产一级| 亚洲精品一区二区三区蜜桃下载 | 欧美日韩一本到| 久久综合av免费| 亚洲视频每日更新| 免费高清在线视频一区·| 国产精一品亚洲二区在线视频| www.性欧美| 欧美一级二级在线观看| 欧美国产激情二区三区| 亚洲电影中文字幕在线观看| 国产一区久久久| 欧美亚洲愉拍一区二区| 精品欧美一区二区在线观看| 日本一区二区三区在线观看| 一区二区久久久久| 国产乱淫av一区二区三区| 91福利在线观看| 久久精品免视看| 五月天亚洲婷婷| 9l国产精品久久久久麻豆| 欧美一区二区三区电影| 国产精品视频你懂的| 免费成人美女在线观看| 91蝌蚪porny| 久久婷婷综合激情| 亚洲电影你懂得| 波多野洁衣一区| 精品国产在天天线2019| 一区二区三区中文字幕| 粉嫩在线一区二区三区视频| 欧美一二三区在线| 一区二区三区av电影 | fc2成人免费人成在线观看播放| 欧美一区欧美二区| 亚洲免费观看在线视频| 高清av一区二区| 精品99久久久久久| 日韩成人精品在线观看| 色狠狠桃花综合| 日韩美女久久久| 成人精品高清在线| 久久香蕉国产线看观看99| 日韩高清不卡一区二区三区| 欧美在线综合视频| 一区二区三区在线视频播放| 成人av电影在线播放| 久久久国际精品| 国产一区二区在线免费观看| 欧美一区二区不卡视频| 亚洲18色成人| 欧美日韩成人在线一区| 亚洲一区二区三区美女| 色婷婷激情一区二区三区| 亚洲欧洲一区二区三区| av不卡免费在线观看| 亚洲欧洲在线观看av| 91亚洲精品久久久蜜桃| 日韩一区欧美一区| 色综合中文字幕| 亚洲色图丝袜美腿| 色婷婷久久久亚洲一区二区三区| 亚洲色图欧美激情| 91啪在线观看| 一区二区免费看| 欧美人伦禁忌dvd放荡欲情| 亚洲图片自拍偷拍| 3d动漫精品啪啪| 麻豆91精品视频| 精品噜噜噜噜久久久久久久久试看| 日本成人在线一区| www国产精品av| 国产超碰在线一区| 亚洲欧美一区二区不卡| 欧美少妇bbb| 奇米在线7777在线精品| 久久午夜国产精品| 成人三级伦理片| 亚洲视频免费看| 欧美日韩亚洲综合在线| 美国一区二区三区在线播放| 久久久久久久精| av在线综合网| 天天操天天干天天综合网| 日韩免费看网站| 高清久久久久久| 亚洲影院在线观看| 精品久久久影院| jizz一区二区| 日韩国产欧美在线视频| 久久精品视频在线免费观看| 色诱亚洲精品久久久久久| 日本欧美肥老太交大片| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品久久夜|