負一的存儲
『壹』 -1在計算機中是怎樣存儲的
有定點和浮點兩種
定點又有8421碼和八位元組表示
8421的話是:1001
八位元組的話:10000001
負數是1 正數是0
『貳』 負數在內存中的二進制形式怎樣存儲
告訴你原理,1111111111111111的最高位代表負數沒錯,剩下的15位全是1,在二進制里就是能表示出來的最大的正數了,你想,一個最大的數前面加個負號,那麼這個數是不是就成為了最小的負數?電腦里存放的十進制都是小數點前面的數,也就是整數。10進制里最小的負整數,那當然就是-1了。明白了就給我加分吧。
『叄』 想了一個上午都不懂,-1在內存中的存放的二進制碼為1111111111111111,這是為什麼看不懂了
-1內存中是以補碼的形式存放的,即二進製表示的 取反,再加1;
如-1:最左邊是符號位,1表示負數。
1的二進制為000000000000001,取反為111111111111110,再加1即為111111111111111;所以整體就是上面的1111111111111111。
整型在內存中以補碼形式保存,對於16位機來說,-1的原碼是1 0000000 00000001,其補碼就是1 1111111 11111111。
(3)負一的存儲擴展閱讀:
假設當前時針指向8點,而准確時間是6點,調整時間可有以下兩種撥法:一種是倒撥2小時,即8-2=6;另一種是順撥10小時,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12為模的系統里,加10和減2效果是一樣的,因此凡是減2運算,都可以用加10來代替。
若用一般公式可表示為:a-b=a-b+mod=a+mod-b。對「模」而言,2和10互為補數。實際上,以12為模的系統中,11和1,8和4,9和3,7和5,6和6都有這個特性,共同的特點是兩者相加等於模。
『肆』 c語言中 -1在內存中如何表示
答案:1111 1111(八個一)
原理如下:設(1111 1111)為原碼,如果要想知道原碼的十進制數是多少,需要做一下處理。
先判斷:當最高位是0時,表示正數,正數的原碼=反碼=補碼,當最高位為1時,表示負數,負數的原碼取反為反碼,然後反碼加一為補碼,補碼就是這個負數的絕對值。
,第一步,取反;最高位為符號位,把(1111 1111)取反就為反碼(0000 0000)8個0,
第二步,反碼加一;加1等於(0000 0001),這兒等到的(0000 0001)就是(1111 1111)的補碼,補碼(0000 0000)的十進制是1,這兒的1就是這個負數的絕對值。完畢。
『伍』 -1的8位二進制是多少
1000 0001(負1的原碼)
1111 1111(負1的補碼)
計算機中所有的負數都是以補碼形式存在的,所以-1的8位二進制是1111 1111
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。
『陸』 二進制數的正負如何表示1任何數是不是在儲存空間里
二進制數的正負如何表示?
1 任何數是不是在儲存空間裡面都是以有符號數存在的?即最高位 1 為負數 0 為正數 2 如系統是8位,數字10 1001 系統會自動補足八位是么?也就是按0010 1001 儲存對不?
針對第一個問題:對.任何數在內存中都是以補碼的形式存在(其中正整數:原碼=反碼=補碼;負整數:原反碼=原碼(最高位不變,其餘按位取反);補碼=反碼+1). 針對第二個問題:如果不滿八位,系統肯定是補足八位.對於正整數而言,最高位全部填滿0.對於負整數而言,按照「原反碼=原碼(最高位不變,其餘按位取反);補碼=反碼+1」原則發生變化:比如-5的存儲: 【因為-5表示是:1000 0101(原碼)=>1111 1010(反碼)=> 1111 1011(補碼,存儲的就是這個)】
-------------------
通識基礎_正負數二進制的表示
2015-01-28 11:26 306人閱讀 評論(0) 收藏 舉報
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
用byte舉例,一個位元組,8個二進制位
1.無符號數表示範圍為0----------255
最大為11111111,1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=255
最小為00000000,0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0=0
2.有符號數表示範圍為-128-----0-----127
有符號數第一位表示符號,0表示正數,1表示負數
最大為01111111,1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=127
以下注意!負數的二進製表示如下:
二進制值(1位元組)
十進制值
10000000
-128
10000001
-127
10000010
-126
10000011
-125
……
……
11111110
-2
11111111
-1
從-1到-128,其二進制的最高位都是1,因為負數最高為為1
然後1000 0000 並沒有拿來表示 -0,而1000 0001也不是拿來直觀地表示-1。事實上,-1 用1111 1111來表示。
為什麼?
-1大還是-128大?
當然是 -1 大。-1是最大的負整數。以此對應,計算機中無論是字元類型,或者是整數類型,也無論這個整數是幾個位元組。它都用全1來表示 -1。比如一個位元組的數值中:1111 1111表示-1,那麼,1111 1111 - 1 是什麼呢?和現實中的計算結果完全一致。1111 1111 - 1 = 1111 1110,而1111 1110就是-2。這樣一直減下去,當減到只剩最高位用於表示符號的1以外,其它低位全為0時,就是最小的負值了,在一位元組中,最小的負值是1000 0000,也就是-128。
我們以-1為例,來看看不同位元組數的負整數中,如何表達-1這個數:
位元組數
二進制值
十進制值
單位元組數
11111111
-1
雙位元組數
11111111
11111111
-1
四位元組數
11111111 11111111
11111111 11111111
-1
『柒』 負數在計算機中如何存儲
負數存儲在計算機中與存儲其他的數,其他的文字一樣,沒什麼特別的。
『捌』 c語言,大括弧那裡,負1怎麼來的
因為,255,就是 -1 的補碼。-1 是真值。
[-1]補 = 1111 1111B = 255。
你寫上 254,就會輸出 -2,
因為,254,就是 -2 的補碼。-2 是真值。
你寫上 253,就會輸出 -3,
因為,253,就是 -3 的補碼。
。。。。。。
你可以實驗一下,其它數字。
對於 char 變數,你輸入任何數字,都是當作補碼存入的,
輸出時,就都是真值。
如果補碼,還沒有弄明白,理解這個,比較吃力。