數制:
十進位制:0~9 逢十進一,借一當十
二進位制:0~1 逢二進一,借一當二
十六進製制:0~9和a~f 逢十六進一,借一當十六
數值轉換
二進位制、十六禁止->十進位制
把權值相乘再求累加和就可以得到十進位制。
(1101.11)
2=1*2^3+1*2^2+1*2^0+1*2^(-1)+1*2^(-2)=(13.75)10
(e5a)
16=14*16^2+5*16^1+10*16^0=(3674)10
十進位制整數->二進位制
方法:除二取餘
如:n=(14)
10=(110)2
過程為:
14/2=7 餘數=0 --- d0
7/2=3 餘數=1 --- d1
3/2=1 餘數=1 --- d2
1/2=0 餘數=1 --- d3
所以:n=d3d2d1d0=(1110)2
十進位制純小數->二進位制
方法:乘二取整,直到小數部分為0
如:n=(0.8125)
10=(0.1101)2
過程為:
0.8125*2=1.625 整數部分=1 --- d1
0.625*2=1.25 整數部分=1 --- d2
0.25*2=0.5 整數部分=0 --- d3
0.5*2=1.0 整數部分=1 --- d4
所以,n=(0.1101)2
二進位制->十六進製制
方法:以小數點左右散開,4位二進位制為一組,不足4位補0,每組用等值的十六進製制代替。
如:(1101110.11)
2=(0110 1110.1100)
2=(6e.c)16
補充:在組合語言中十六進製制字尾h表示
所以(1a2b)
16可寫成1a2bh
十六進製制->二進位制
方法:每一位用等值的二進位制代替
如:(17e.58)
16=(0001 0111 1110.0101 1000)
2=(01111110.01011)2
進製說完了,下面說機器數的原碼、反碼和補碼
數x的原碼記作[x]
原,反碼記作[x]
反,補碼記作[x]補
下面全是討論有符號數(最高位為0表示正數,最高位為1表示負數)
例如,當機器字長n=8時:
x=+5=+0000101
則可知:
[x]原=00000101
[x]反=00000101
[x]補=00000101
所以當乙個數為正數的時候:原碼=反碼=補碼
下面再舉個列子:
y=-5=-0000101
則可知:
[y]原=10000101
[y]反=11111010
[y]補=11111011
所以當乙個數為正數的時候:
反碼:符號位不變,其他位取反。
補碼:反碼+1。
注意:
當z=0時
z=+0000000
z=-0000000
都可以,他們的補碼都為00000000
由於補碼的機器數更適合運算,為此計算機中負數都用補碼表示。
這節就到這裡,下一節說明補碼的運算和字元編碼
彙編預備知識 五
實位址模式下儲存器的分段技術及實體地址的形成方法 1儲存分段管理 x86對儲存器採用分段管理,乙個單元的位址由兩個部分組成。寫成 段基址 偏移量 如下面乙個例子 段基址 偏移位址 注意 在乙個邏輯段中,各單元的段基址是相同的。偏移位址是該單元相對於段首的位址偏移量 儲存器及其組成設計 儲存容量 me...
彙編預備知識 六
儲存器的基本組織 1.與cpu的連線 主要是位址線 控制線 資料線的連線。2.多個晶元連線 設計的儲存器容量與實際提供的儲存器多有不符。實際使用時,需要進行字和位擴充套件 多個晶元連線 組成所需的實際的儲存器 總片數 總容量 容量 片數 例如 儲存器容量為8k 8,若選用2114晶元 1k 4 則需...
Linq to sql(一) 預備知識
什麼是linq to sql linq to sql 或者叫dlinq 是linq net語言整合查詢 的一部分,全稱基於關係資料的 net 語言整合查詢,用於以物件形式管理關係資料,並提供了豐富的查詢功能,它和linq to xml linq to objects linq to dataset ...