16進製製小技巧

2021-08-11 01:44:30 字數 1792 閱讀 4740

看最高那個數大於8那麼就是負數,否則為正數。

異號相加是不可能溢位的

同號相加變成其相反的號就溢位了。

負數用十六進製制表示,通常用的是補碼的方式表示.

十六進製制(英文名稱:hexadecimal),是計算機中資料的一種表示方法。同我們日常生活中的表示法不一樣。它由0-9,a-f組成,字母不區分大小寫。與10進製的對應關係是:0-9對應0-9;a-f對應10-15;n進製的數可以用0~(n-1)的數表示,超過9的用字母a-f。

正數的補是它本身;負數的補碼是它本身的值每位求反,最後再加一。

例如:求-3的十六進製制

3的十六進製制為0003,3求反之後是c,再加1,成d,所以-3的十六進製制就是:fffd

例如:

十六進製制數怎麼轉換十進位制負數

需要借助二進位制來進行,舉例:

c3h是有符號數,最高位為1表示這是乙個用補碼方式儲存的負數

c3h=11000011b,減1=11000010b,取反=00111101b=61d,所以c3h=-61d

附:補碼特性:

1、乙個負整數(或原碼)與其補數(或補碼)相加,和為模。

2、對乙個整數的補碼再求補碼,等於該整數自身。

3、補碼的正零與負零表示方法相同。

(1)補碼加法

[x+y]補 = [x]補 + [y]補

【例6】x=+0110011,y=-0101001,求[x+y]補

[x]補=00110011 [y]補=11010111

[x+y]補 = [x]補 + [y]補 = 00110011+11010111=00001010

注:因為計算機中運算器的位長是固定的(定長運算),上述運算中產生的最高位進製將丟掉,所以結果不是100001010,而是00001010,。

(2)補碼減法

[x-y]補 = [x]補 - [y]補 = [x]補 + [-y]補

【例7】1-1 [十進位制]

1的原碼00000001 轉換成補碼:00000001

-1的原碼10000001 轉換成補碼:11111111

1+(-1)=0

00000001+11111111=00000000

00000000轉換成十進位制為0

0=0所以運算正確。

【例8增】-7-(-10) [十進位制]

改為加法形式:-7-(-10)=-7+(-(-10))

-7的補碼:11111001

-(-10)的補碼:-10的原碼為10001010,-(-10)的原碼為00001010,

-(-10)的補碼就是其原碼,為00001010

-7 - (-10)= -7 + 10 = 3

11111001+00001010 = 00000011

轉換成十進位制為3

(3)補碼乘法

補碼的乘法不具備【x*y】補=【x】補×【y】補的性質。但是【x*y】補==【x】補×y,所得結果再取補碼,如x=101,y=011,[x*y]補=-[(-101)*011]=-[011*011]=-01001=10111

其中,若【y】補=y31y30……y0,則 y=-y31*2^31+y30*2^30+……+y0*2^0

2.反碼

正數:正數的反碼與原碼相同。負數:負數的反碼,符號位為「1」,數值部分按位取反。例如: 符號位 數值位

[+7]反= 0 0000111 b

[-7]反= 1 1111000 b

16進製制反碼需要轉換為相應二進位制求二進位制反碼

16進製制加減法,模仿十進位制,逢16進1,借1當16.

16進製制位址進製

16進製制 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 乙個位址表示乙個byte,即8bit 0x8000000033221100 77665544 bbaa9988 ffeeddcc 0x8000001076543210 0x80000000 00000000 0x80000001...

UIColor的16進製制色值,16進製制字串擴充套件

inte ce uicolor hex 16進製制字串轉化為顏色 param hexstr 16進製制字串 支援 0x.0x.return uicolor uicolor colorwithhexstring nsstring hexstr 16進製制字串轉化為顏色 param hexstr 16進...

二進位製小技巧

二進位制嘛,可以加速 a 2 a 1 a 2 a 1 2 b 1 b 可以判斷一些東西 a 1 a 2 1 a 1可以求出數的乙個相鄰數 等等等等 下面我會在做題目時記錄一下位運算的技巧 這題讓我們統計區間顏色種類,種類不超過30種 那我們可以用位運算來壓縮 開乙個int,轉換成二進位制後可以清晰的...