在計(jì)算機(jī)編程中,整數(shù)可以通過二進(jìn)制踢代、八進(jìn)制盲憎、十進(jìn)制、十六進(jìn)制來表示
1.進(jìn)制
1.十進(jìn)制
a.基數(shù):0,1,2,3,4,5,6,7,8,9
b.進(jìn)位:逢十進(jìn)一
c.位權(quán):123=110^2+2101+3*100
2.二進(jìn)制
a.基數(shù);0,1
b.進(jìn)位:逢二進(jìn)一
c.位權(quán):101=12^0+02^1+122=5
3.八進(jìn)制
a.基數(shù):0,1,2,3,4,5,6,7
b.進(jìn)位:逢八進(jìn)一
c.位權(quán):123(8)=38^0+281+1*82=83
4.十六進(jìn)制
基數(shù):0胳挎,1饼疙,2,3慕爬,4窑眯,5,6医窿,7磅甩,8,9姥卢,a/A(10),b/B(11),c/C(12),d/D(13),e/E(14),f/F(15)
b.進(jìn)位:逢十六進(jìn)一
c.位權(quán):123(16)=123=116^2+2161+3*160=291
2.程序中怎么表示不同進(jìn)制的數(shù)
a.十進(jìn)制 直接寫
A=10 #這是一個(gè)十進(jìn)制的數(shù)
print (A) #直接打印其他進(jìn)制數(shù)就會(huì)顯示他的十進(jìn)制
b.二進(jìn)制
0b+二進(jìn)制數(shù)
num=0b110
print(bin(800)) 打印二進(jìn)制數(shù)的800
print(bin(0xff)) 打印十六進(jìn)制數(shù)的ff
c.八進(jìn)制
0o+八進(jìn)制數(shù)
num=0o12376
print(oct(800))打印八進(jìn)制的800
d.十六進(jìn)制
0x/0X+十六進(jìn)制數(shù)
num=0xa21f
print(hex(255))打印十六進(jìn)制的255
3.計(jì)算機(jī)碼
計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)只能存儲(chǔ)數(shù)字?jǐn)?shù)據(jù)卷要,而且存的是數(shù)字的補(bǔ)碼。
計(jì)算機(jī)存數(shù)據(jù)進(jìn)行運(yùn)算的時(shí)候是使用補(bǔ)碼進(jìn)行運(yùn)算的独榴,展示結(jié)果是使用補(bǔ)碼進(jìn)行運(yùn)算的僧叉,將數(shù)據(jù)從計(jì)算機(jī)中讀出來看到的是原碼
1.原碼:
符號(hào)位+真值
說明:最高位用0表示正數(shù),1表示負(fù)數(shù)
真值:去掉正負(fù)的數(shù)字對(duì)應(yīng)的二進(jìn)制數(shù)
100的原碼:01100100
-100的原碼:11100100
2.反碼:
正數(shù)的反碼:就是原碼
負(fù)數(shù)的反碼:符號(hào)位不變棺榔,其余位數(shù)取反(0變1,1變0)
100的反碼:01100100
-100的反碼:10011011
3.補(bǔ)碼
正數(shù)的補(bǔ)碼:還是補(bǔ)碼
負(fù)數(shù)的補(bǔ)碼:反碼加1
100的補(bǔ)碼:01100100
-100的反碼:10011100
-50的原碼:1110010
-50的反碼:1001101
-50的補(bǔ)碼:1001110
4.為什么要存補(bǔ)碼彪标?
因?yàn)橛?jì)算器只有加法器,沒有減法器
4.位運(yùn)算:
&(按位與)掷豺,|(按位或運(yùn)算)捞烟,~(按位取反)薄声,^(按位異或運(yùn)算),>>右移题画,<<左移
a.
與運(yùn)算:數(shù)字1 & 數(shù)字2 --->都為1結(jié)果才為1默辨,否則為0
0111 & 1101 --->0101(補(bǔ)碼)
特點(diǎn):一個(gè)位上的數(shù)如果和1與,可以保留這個(gè)位上的數(shù)苍息;和0可以置0
應(yīng)用:判斷一個(gè)數(shù)的奇偶性
num & 1 ==0 --->num是偶數(shù)
num & 1 == 1 --->num是奇數(shù)
b.
或運(yùn)算:兩個(gè)為0才為0
0111 | 1101 ---> 1111
特點(diǎn):和1或缩幸,置1
c.
~數(shù)字(取反):將數(shù)字上的每一位取反
~1 = 0
~0 = 1
d.
數(shù)字1 ^ 數(shù)字2(異或運(yùn)算):相同為0,不同為1
1^1=0
1^0=1
0^1=1
0^0=0
應(yīng)用:加密竞思;判斷兩個(gè)數(shù)是否相等:相同兩個(gè)數(shù)異或1結(jié)果為0
e.
數(shù)字1 << N :將數(shù)字1左移N位表谊,數(shù)字12^N
數(shù)字2 >> N :將數(shù)字1右移N位,數(shù)字12^N
應(yīng)用:快速乘2的N次方/除2的N次方