進(jìn)制之間的轉(zhuǎn)換
其他進(jìn)制轉(zhuǎn)換為二進(jìn)制
1、八轉(zhuǎn)二:123.6,首先,將每一位數(shù)字,一分為三。1=001 ?2=010? 3=011 ?? 0.6=110
然后合起來:0010 1001 1.110=1010 011.11(可將整數(shù)高位的零省略,小數(shù)低位的零不寫)
2、十轉(zhuǎn)二? 方法一:整數(shù)除R取余法,小數(shù)乘E取整法:
如:14.875:整數(shù)部分除2取余,小數(shù)部分乘2取整
整數(shù) 14/2? 商7余0? 7/2 商3余1? 3/2 商1余1? 1/2? 余0? ? ? 除到商數(shù)零為止?
小數(shù) 875 * 2=1.750? 取1? . 075 * 2=1.50 取1? 0.5 * 2=1.0? 取1? 乘到所需要的精度或者積為零為止?
然后? :? 整數(shù)從高位(后面)寫,小數(shù)從低位(前面)寫。
14.875十進(jìn)制轉(zhuǎn)為二進(jìn)制等于? 1110.111
? 十轉(zhuǎn)二? 方法二:如? 46 :他最大只能分配 32位字節(jié),46-32=14,最大3
只能分配8個字節(jié),14-8=6,最大只能分配4個字節(jié),4-2=2。到此結(jié)束
它們分別是? 2^5 ?2^3 ?2^2 2^1 ?然后分別在 第六位上填個1,第四位上填個1,第三位上填個1,第二位上填1 ?,其他位均是零? :46 十轉(zhuǎn)二 101110
3、十六轉(zhuǎn)二:? 84.cf ?一分位為四,規(guī)則方法與八轉(zhuǎn)二相同,? 8=1000? 4=0100? 12=1100? 16=1111
合起來:1000 0100 0100.1100 1111
其他進(jìn)制轉(zhuǎn)八進(jìn)制
1、二轉(zhuǎn)八 :規(guī)則:整數(shù)部分 從低位到高位,每三位為一組,最高位不足三位時高位補零,小數(shù)從低位到高位,每三位一組,最低位不足三位時低位補零。
1011 1100 011.11=001 011 110 011.110
? ? ? ? ? ? ? =1? 3? 6? 3 . 6
2、十進(jìn)轉(zhuǎn)八:(規(guī)則和十轉(zhuǎn)二一致)除R取余法,乘E取整法
25.35 :整數(shù)? 25/8 ?商3 ?余1 ?3/8 ?余3 ?除到商數(shù)零為止
? ? ? 小數(shù)? 0.35
2、十進(jìn)轉(zhuǎn)八:(規(guī)則和十轉(zhuǎn)二一致)除R取余法,乘E取整法25.35 :整數(shù)? 25/8 ?商3 ?余1 ?3/8 ?余3 ?除到商數(shù)零為止? ? ? ? ? ? 小數(shù)? 0.35 * 8=2.80? 取2 ?0.8 * 8=6.4 ?取6 ?0.4 * 8=3.2 取3 ?0.2 * 8=1.6 取1 乘到所需要的精度或者積為零為止。25.35十轉(zhuǎn)八31.2331
3、十六轉(zhuǎn)八? 一般的方法是先其他進(jìn)制做為媒介,先轉(zhuǎn)為其他進(jìn)制再從其他進(jìn)制轉(zhuǎn)為八進(jìn)制。
如 84.cf ?先轉(zhuǎn)為二進(jìn)制:8=1000? 4=0100 12=1100? 16=1111 ?總:1000 0100.1100 1111
(按照二轉(zhuǎn)八規(guī)則)010 000 100.110 011 110= 204.636
其他進(jìn)制轉(zhuǎn)為十進(jìn)制
1、十六轉(zhuǎn)十(5F):5 * 16^1+15 * 16^0=? 95
2、八轉(zhuǎn)十? (123.4):1 * 8^2+2 * 8^1+3 * 8^0+4 * 8^-1= 83.5
3、二轉(zhuǎn)十? (1101.11):1 * 2^3+1* 2^2+0 * 2^1+1 * 2^0+1 * 2^ -1+1 * 2^-2=13.75
其他進(jìn)制轉(zhuǎn)為十六進(jìn)制
1、二轉(zhuǎn)十六,規(guī)則同二轉(zhuǎn)八一樣,只不過是四合一:
1010 1011 110.011=0101 0101 1110.0110=55E.6
2、八進(jìn)制轉(zhuǎn)十六進(jìn)制,只能是用其他進(jìn)制做為媒介,轉(zhuǎn)為其他進(jìn)之后再轉(zhuǎn)為十六進(jìn)制
3、十轉(zhuǎn)十六,方法一:用其他進(jìn)制做媒介 先轉(zhuǎn)為其他進(jìn)制再轉(zhuǎn)為十六進(jìn)制。
方法二 :用整數(shù)除16取余法,小數(shù)用乘16取整法。
運算符
優(yōu)先級運算符含義說明結(jié)合方向
說明:同一優(yōu)先級時,運算方向按照結(jié)合方向決定。
自增(自減)i++與++i的不同
i++表示先使用i的值之后再+1
++i表示先+1
從上述表中可以大致歸納出各類運算符的優(yōu)先級:
初等運算符(??)[??] ->? .
↓
單目運算符
↓
算述運算符(先乘除,后加減)
↓
關(guān)系運算符
↓
邏輯運算符(不包括!)
↓
條件運算符
↓
逗號符
printf函數(shù):
format -- 是格式控制字符串,其中兩種類型的對象:普通字符和轉(zhuǎn)換說明(加%那種)? 。在輸出時,普通字符將原樣不動地復(fù)制到標(biāo)準(zhǔn)輸出,轉(zhuǎn)換說明并不直接輸出而是用于控制 printf 中參數(shù)的轉(zhuǎn)換和打印。每個轉(zhuǎn)換說明都由一個百分號字符(%)開始,以轉(zhuǎn)換說明結(jié)束,從而說明輸出數(shù)據(jù)的類型、寬度、精度等
函數(shù)原形:%[flags][width][.precision][length]specifier,即:%[標(biāo)志][最小寬度][.精度][類型長度]說明符? ? (其中如果加轉(zhuǎn)換說明時,%和 說明符(格式符)不能省略,其他均可)
函數(shù)表示在format的控制下,將其參數(shù)進(jìn)行格式化,然后再輸出打印出來。
如果函數(shù)執(zhí)行成功,則返回打印字符的數(shù)量,失敗則返回負(fù)數(shù)。
printf 函數(shù)的返回值為其輸出字符串常量的字符數(shù)(注意字符數(shù)與字?jǐn)?shù)的區(qū)別),注意計數(shù)針對所有的打印字符,包括空格和不可見的換行字符(不包括字符串的空字符)。
printf函數(shù)輸出方向是自右到左的。圖解:
scanf函數(shù)
標(biāo)準(zhǔn)輸入流stdin:它是從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)獲取數(shù)據(jù),程序中的變量通過流提取符從流中提取數(shù)據(jù),注意:只有在輸入完數(shù)據(jù)再按回車鍵后,該行數(shù)據(jù)才被送入鍵盤緩存區(qū)(sell),形成輸入流,提取運算符才能從中提取數(shù)據(jù)。需要注意保證從流中讀取數(shù)據(jù)能正常運行
scanf函數(shù)是從stdin中讀取內(nèi)存的子程序。并將數(shù)據(jù)保存在變量的地址中。
scanf函數(shù)返回成功讀入的數(shù)據(jù)項數(shù)。函數(shù)返回值為int型。
如果a和b都被成功讀入,那么scanf的返回值就是2;
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。
函數(shù)原形:int scanf (const char * restrict format,...);(存儲順序由編譯器決定)
**注意:
(1)在高版本的 Visual Studio 編譯器中,scanf 被認(rèn)為是不安全的,被棄用,應(yīng)當(dāng)使用scanf_s代替 scanf。
(2) 對于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名可以轉(zhuǎn)換為數(shù)組和指針變量名本身就是地址,因此使用scanf()函數(shù)時,不需要在它們前面加上"&"操作符。
(3) 可以在格式化字符串中的"%"各格式化規(guī)定符之間加入一個整數(shù),表示任何讀操作中的最大位數(shù)。
(4) scanf函數(shù)中沒有類似printf的精度控制。如:scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數(shù)為2位的實數(shù)。
(5) scanf中要求給出變量地址,如給出變量名則會出錯如 scanf("%d",a);是非法的,應(yīng)改為scanf("%d",&a);才是合法的。
(6) 在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔,則可用空格,TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對“%d”輸入“12A”時,A即為非法數(shù)據(jù))時即認(rèn)為該數(shù)據(jù)結(jié)束。(7) 在輸入字符數(shù)據(jù)(%c)時,若格式控制串中無非格式字符,則認(rèn)為所有輸入的字符均為有效字符。(scanf有一個明顯的優(yōu)點,速度比cin函數(shù)快)
圖解:
?
審核編輯:湯梓紅
?
評論