程式設計師考試筆記(1)

2021-08-22 20:08:12 字數 3332 閱讀 7628

二,八,一○,一六進製制的轉換:

2. 數制之間的轉換(1)十進位制整數轉換為二進位制整數

採用基數2連續去除該十進位制整數,直至商等於「0」為止,然後逆序排列餘數。

(2)十進位制小數轉化為二進位制小數

連續用基數2去乘以該十進位制小數,直至乘積的小數部分等於「0」,然後順序排列每次乘積的整數部分。

(3)十進位制整數轉換為八進位制整數或十六進製制整數

採用基數8或基數16連續去除該十進位制整數,直至商等於「0」為止,然後逆序排列所得到的餘數。

(4)十進位制小數轉換為八進位制小數或十六進製制小數

連續用基數8或基數16去乘以該十進位制小數,直至乘積的小數部分等於「0」,然後順序排列每次乘積的整數部分。

(5)二、八、十六進製制數轉換為十進位制數

用其各位所對應的係數,按「位權展開求和」的方法就可以得到。其基數分別為2、8、16。

(6)二進位制數轉換為八進位制數

從小數點開始分別向左或向右,將每3位二進位制數分成1組,不足3位數的補0,然後將每組用1位八進位制數表示即可。

(7)八進位制數轉換為二進位制數

將每位八進位制數用3位二進位制數表示即可。

(8)二進位制數轉換為十六進製制數

從小數點開始分別向左或向右,將每4位二進位制數分成1組,不足4位的補0,然後將每組用一位十六進製制數表示即可。

(9)十六進製制數轉換為二進位制數

將每位十六進製制數用4位二進位制數表示即可。

【例2.1】將十進位制整數(105)10轉換為二進位制整數,採用「除2倒取餘」的方法,過程如下:

2 ︳105

2 ︳52 餘數為1

2 ︳26 餘數為0

2 ︳13 餘數為0

2 ︳6 餘數為1

2 ︳3 餘數為0

2 ︳1 餘數為1

0 餘數為1

所以,(105)10=(1101001)2

【例2.2】將十進位制小數(0.8125)10轉換為二進位制小數,採用「乘2順取整」的方法,過程如下:

0.8125×2=1.625 取整數字1

0.625×2=1.25 取整數字1

0.25×2=0.5 取整數字0

0.5×2=1.0 取整數字1

所以,(0.8125)10=(0.1101)2如果出現乘積的小數部分一直不為「0」,則可以根據精度的要求擷取一定的位數即可。

【例2.3】將十進位制整數(2347)10轉換為十六進製制整數,採用「除16倒取餘」的方法,過程如下:

16 ︳2347

16 ︳146 餘數為11(十六進製制數為b)

16 ︳ 9 餘數為2

0 餘數為9

所以,(2347)10=(92b)16

含小數字的二進位制數轉為10進製數:

小數部分從小數點位置開始:1/2,1/4,1/8,1/16....

即:1010.1011=>8+2+1/2+1/8+1/16

(「^」代表冪)

1101.0111=>1*2^3+1*2^2+0*2^1+1*2^0+0*2^(-1)+1*2^(-2)+1*2^(-3)+1*2^(-4)

原碼,反碼,補碼,移碼 原碼

正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。

【例2.13】當機器字長為8位二進位制數時:

x=+1011011 [x]原碼=01011011

y=+1011011 [y]原碼=11011011

[+1]原碼=00000001 [-1]原碼=10000001

[+127]原碼=01111111 [-127]原碼=11111111

原碼表示的整數範圍是:

-(2n-1-1)~+(2n-1-1),其中n為機器字長。

則:8位二進位制原碼表示的整數範圍是-127~+127

16位二進位制原碼表示的整數範圍是-32767~+32767

反碼 對於乙個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。【例2.14】當機器字長為8位二進位制數時:

x=+1011011 [x]原碼=01011011 [x]反碼=01011011

y=-1011011 [y]原碼=11011011 [y]反碼=10100100

[+1]反碼=00000001 [-1]反碼=11111110

[+127]反碼=01111111 [-127]反碼=10000000

負數的反碼與負數的原碼有很大的區別,反碼通常用作求補碼過程中的中間形式。 反碼表示的整數範圍與原碼相同。

補碼正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。

【例2.15】(1)x=+1011011 (2) y=-1011011

(1)根據定義有: [x]原碼=01011011 [x]補碼=01011011

(2) 根據定義有: [y]原碼=11011011 [y]反碼=10100100

[y]補碼=10100101

補碼表示的整數範圍是-2n-1~+(2n-1-1),其中n為機器字長。

則:8位二進位制補碼表示的整數範圍是-128~+127

16位二進位制補碼表示的整數範圍是-32768~+32767

當運算結果超出這個範圍時,就不能正確表示數了,此時稱為溢位。

補碼與真值之間的轉換

正數補碼的真值等於補碼的本身;負數補碼轉換為其真值時,將負數補碼按位求反,末位加1,即可得到該負數補碼對應的真值的絕對值。

【例2.16】[x]補碼=01011001b,[x]補碼=11011001b,分別求其真值x。

(1)[x]補碼代表的數是正數,其真值:

x=+1011001b

=+(1×26+1×24+1×23+1×20)

=+(64+16+8+1)

=+(89)d

(2)[x]補碼代表的數是負數,則真值:

x=-([1011001]求反+1)b

=-(0100110+1)b

=-(0100111)b

=-(1×25+1×22+1×21+1×20)

=-(32+4+2+1)

=-(39)d

移碼:移碼(又叫增碼)是符號位取反的補碼,一般用做浮點數的補碼,引入的目的是為了保證浮點數的機器零為全0。

①移碼的定義:設由1位符號位和n位數值位組成的階碼,則 [x]移=2en + x -2n≤x ≤ 2n

例如: x=+1011 [x]移=11011 符號位「1」表示正號

x=-1011 [x]移=00101 符號位「0」表示負號

②移碼與補碼的關係: [x]移與[x]補的關係是符號位互為相反數(僅符號位不同),

例如: x=+1011 [x]移=11011 [x]補=01011

x=-1011 [x]移=00101 [x]補=10101

考試筆記1

1 配置apache時修改httpd.ini,配置php時修改php.ini 2 賦值 比較的是值 比較的是值和型別3 string 函式函式 描述explode 把字串打散為陣列 strlen 返回字串的長度 strtolower 把字串轉化為小寫字母 strtoupper 把字串轉化為大寫字母 ...

程式設計師考試學習筆記

第一章 計算機系統基礎知識 1.1 計算機系統的基本組成 計算機系統是由硬體系統和軟體系統組成的。計算機硬體 指的是計算機系統中看得見摸得著的物理裝置 計算機軟體 程式 資料和相關文件的集合 1 計算機系統的硬體 基本的硬體系統是由 運算器 控制器 儲存器 輸入裝置 輸出裝置 五大裝置組成。1 cp...

程式設計師考試大綱

一 考試說明 1 考試要求 1 熟練掌握基本演算法和資料結構,用c語言編制程式 2 掌握資料結構 程式語言和作業系統的基礎知識 3 了解軟體工程資料庫 多 和網路的基礎知識 4 掌握數制 機內 及其算術運算和邏輯運算 5 了解計算機的體系結構和主要部件的基礎知識 6 正確閱讀和理解計算機領域的簡單英...