青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer

天行健,君子以自強(qiáng)不息; 地勢坤,君子以厚德載物

隱式類型轉(zhuǎn)換&& 負(fù)數(shù)的補(bǔ)碼

   偶然看到一道C++面試題:
void foo(void)
       
{
            unsigned 
int a = 6;
            
int b = -20;
            (a
+b>6)?puts(">6"):puts("<=6");//puts為打印函數(shù)
       }

   問輸出是什么?答案是輸出 >6。
   這道題主要考察兩個東西。
   1.隱式類型轉(zhuǎn)換:int型變量轉(zhuǎn)化成unsigned int, b成了正數(shù).
   2.負(fù)數(shù)的補(bǔ)碼:計算機(jī)系統(tǒng)中的數(shù)值是以補(bǔ)碼形式表示(存儲)的。

一、C++隱式類型轉(zhuǎn)換

   C++定義了一組內(nèi)置的類型對象之間的標(biāo)準(zhǔn)轉(zhuǎn)換,在必要時它們被編譯器隱式的應(yīng)用到對象上。在算式轉(zhuǎn)換保證了二元操作符,如加法或乘法的兩個操作數(shù)被提升為共同的類型,然后再用它表示結(jié)果的類型。兩個通用的指導(dǎo)原則如下:
    1、為防止精度損失,如果必要的話,類型總是被提升為較寬的類型。
    2、所有含有小于整形的有序類型的算術(shù)表達(dá)式在計算之前其類型都會被轉(zhuǎn)換成整形。
    規(guī)則的定義如上面所述,這些規(guī)則定義了一個類型轉(zhuǎn)換層次結(jié)構(gòu),我們從最寬的類型long double 開始,那么另一個操作數(shù)無論是什么類型都將被轉(zhuǎn)換成long double .如果兩個操作數(shù)千不是long double 型,那么若其中一個操作數(shù)的類型是double 型,則另一個就被轉(zhuǎn)換成double 型。例如:

     int ival;
     
float fval;
     
double dval;
     dval 
+ fval + ival //在計算加法前fval和ival都被轉(zhuǎn)換成double

     類似地,如果兩個操作數(shù)都不是double型而其中一個操作float型 ,則另一個被轉(zhuǎn)換成float型。例如:

     char cval;
     
int ival;
     
float fval;
     cval 
+ ival + fval //在計算加法前ival和cval都被轉(zhuǎn)換成float

    否則如果兩個操作數(shù)都不是3種浮點(diǎn)類型之一,它們一定是某種整值類型。在確定共同的目標(biāo)提升類型之前,編譯器將在所有小于int 的整值類型上施加一個被稱為整值提升的過程。
    在進(jìn)行整值提升時類型char、signed char、unsigned char和short int 都被提升為類型int 。如果機(jī)器上的類型空間足夠表示所有unsigned short 型的值,這通常發(fā)生在short用半個字而int 用一個字表示的情況下,則unsigned short int 也被轉(zhuǎn)換成int 否則它會被提升為unsigned int 。wchar_t和枚舉類型被提升為能夠表示其底層類型所有值的最小整數(shù)類型。在下列表達(dá)式中:

     char cval;
     
bool found;
     
enum mumber{m1,m2,m3}mval;
     unsigned 
long ulong;
     cval 
+ ulong;ulong + found; mval + ulong;

   在確定兩個操作數(shù)被提升的公共類型之前,cval found 和mval都被提升為int 類型。
    一旦整值提升執(zhí)行完畢,類型比較就又一次開始。如果一個操作數(shù)是unsigned long 型,則第二個也被轉(zhuǎn)換成unsigned long 型。在上面的例子中所有被加到ulong上的3個對象都被提升為unsigned long 型。如果兩個操作數(shù)類型都不是unsigned long型 而其中一個操作數(shù)是long型,則另一個也被轉(zhuǎn)換成long型。例如:

     char cval;
     
long lval;
     cval 
+ 1024 + lval; //在計算加法前cval和1024都被提升為long型。

    long類型的一般轉(zhuǎn)換有一個例外。如果一個操作數(shù)是long型而另一個是unsigned int 型,那么只有機(jī)器上的long型的長度足以容納unsigned int 的所有值時(一般來說,在32位操作系統(tǒng)中l(wèi)ong型和int 型都用一長表示,所以不滿足這里的假設(shè)條件),unsigned int 才會被轉(zhuǎn)換為long型,否則兩個操作數(shù)都被提升為unsigned long 型。若兩個操作數(shù)都不是long型而其中一個是unsigned int 型,則另一個也被轉(zhuǎn)換成unsigned int 型,否則兩個操作數(shù)一定都是int 型。
   一般來說各種類型的長度關(guān)系為 long double > double > float >=  int >= short > char,unsigned > signed 。
    盡管算術(shù)轉(zhuǎn)換的這些規(guī)則帶給你的困惑可能多于啟發(fā),但是一般的思想是盡可能地保留類型表達(dá)式中涉及到的值的精度。這下是通過把不同的類型提升到當(dāng)前出現(xiàn)的最寬的類型實(shí)現(xiàn)的。

二、負(fù)數(shù)的補(bǔ)碼

   在計算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來表示(存儲)。 
   主要原因:使用補(bǔ)碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補(bǔ)碼表示的數(shù)相加時,如果最高位(符號位)有進(jìn)位,則進(jìn)位被舍棄。 
   補(bǔ)碼與原碼的轉(zhuǎn)換過程幾乎是相同的。 
   數(shù)值的補(bǔ)碼表示也分兩種情況:
(1)正數(shù)的補(bǔ)碼:與原碼相同。 
   例如,+9的補(bǔ)碼是00001001。
(2)負(fù)數(shù)的補(bǔ)碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后整個數(shù)加1。 
   例如,-7的補(bǔ)碼:因?yàn)槭秦?fù)數(shù),則符號位為“1”,整個為10000111;其余7位為-7的絕對值+7的原碼0000111按位取反為1111000;再加1,所以-7的補(bǔ)碼是11111001。 
   已知一個數(shù)的補(bǔ)碼,求原碼的操作分兩種情況:
(1)如果補(bǔ)碼的符號位為“0”,表示是一個正數(shù),所以補(bǔ)碼就是該數(shù)的原碼。
(2)如果補(bǔ)碼的符號位為“1”,表示是一個負(fù)數(shù),求原碼的操作可以是:符號位為1,其余各位取反,然后再整個數(shù)加1。 
   例如,已知一個補(bǔ)碼為11111001,則原碼是10000111(-7):因?yàn)榉栁粸?#8220;1”,表示是一個負(fù)數(shù),所以該位不變,仍為“1”;其余7位1111001取反后為0000110;再加1,所以是10000111。

posted on 2009-07-16 15:01 Saga 閱讀(2558) 評論(0)  編輯 收藏 引用 所屬分類: C/C++


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導(dǎo)航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品h在线观看| 亚洲一级影院| 亚洲影视九九影院在线观看| 国产精品你懂的在线欣赏| 久久久久国产精品www| 欧美不卡视频一区发布| 亚洲神马久久| 一区二区三区在线不卡| 欧美日韩ab片| 久久全球大尺度高清视频| 日韩性生活视频| 蜜臀a∨国产成人精品| 亚洲一级黄色片| 亚洲国产成人一区| 国产精品一区二区你懂的| 欧美大片在线观看| 久久精品欧洲| 久久在线免费观看| 中文欧美在线视频| 在线观看欧美日韩| 欧美日韩国产欧美日美国产精品| 欧美在线免费| 亚洲最快最全在线视频| 欧美激情视频网站| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲欧美日韩系列| 国产在线欧美日韩| 国产精品二区二区三区| 欧美激情第六页| 美女图片一区二区| 欧美有码视频| 亚洲视频在线观看视频| 亚洲激情自拍| 老司机aⅴ在线精品导航| 欧美一区二区在线观看| 亚洲伊人网站| 亚洲视频自拍偷拍| 日韩一级在线| 亚洲美女一区| 日韩一级精品| 亚洲精品在线观看视频| 91久久综合亚洲鲁鲁五月天| 国产一区二区三区在线观看视频| 久久久av毛片精品| 亚洲女人天堂成人av在线| 亚洲高清色综合| 欧美激情亚洲国产| 亚洲东热激情| 最新国产乱人伦偷精品免费网站 | 韩国欧美国产1区| 国产精品久久久久久久久搜平片| 欧美日产一区二区三区在线观看| 欧美大片在线看| 欧美高清在线视频| 免费成人性网站| 久久精品一区二区三区四区| 久久九九国产精品| 久久精品一二三区| 欧美一级免费视频| 亚洲欧美日韩国产一区| 午夜国产不卡在线观看视频| 午夜免费日韩视频| 午夜综合激情| 久久久久久欧美| 免费观看日韩av| 欧美乱在线观看| 国产精品久久久久久久久久久久| 国产精品久久久久久亚洲毛片| 国产精品自拍网站| 激情久久一区| 亚洲欧洲久久| 一区二区三区蜜桃网| 中文欧美字幕免费| 久久黄色影院| 欧美成人伊人久久综合网| 亚洲电影在线播放| 这里只有精品丝袜| 欧美在线三级| 欧美激情精品久久久久久| 欧美视频不卡| 国产精品午夜在线观看| 国产欧美一区二区精品仙草咪| 国语自产精品视频在线看一大j8 | 欧美一区二区视频网站| 久久精品女人的天堂av| 麻豆久久婷婷| 欧美性开放视频| 精品成人免费| 亚洲精品乱码久久久久久黑人| 一本色道久久综合亚洲精品婷婷| 亚洲免费视频成人| 久久久久国产精品一区| 欧美国产激情| 亚洲主播在线| 免费观看成人www动漫视频| 欧美色播在线播放| 黄色影院成人| 亚洲欧美日韩视频二区| 欧美高清视频在线观看| 亚洲人成精品久久久久| 欧美在线高清| 欧美日韩视频一区二区| 一区二区在线视频观看| 亚洲午夜国产成人av电影男同| 久久久久久久久久久一区 | 欧美性理论片在线观看片免费| 韩国女主播一区二区三区| 夜夜狂射影院欧美极品| 久久色在线播放| 一本久道久久久| 久久久一区二区三区| 欧美日韩精品一区视频| 韩国在线一区| 亚洲自拍16p| 亚洲高清网站| 久久精品国产清高在天天线| 国产精品麻豆欧美日韩ww| 亚洲欧洲美洲综合色网| 久久一区激情| 午夜亚洲激情| 国产精品久久二区| 日韩午夜黄色| 欧美激情按摩| 久久精品国产综合| 国产日韩精品电影| 亚洲欧美日韩精品久久亚洲区 | 亚洲伊人第一页| 亚洲日本va午夜在线影院| 久久久久久久久一区二区| 国产精品夜色7777狼人| 最新亚洲激情| 久久香蕉精品| 亚洲综合电影一区二区三区| 欧美日韩另类在线| 亚洲精品日产精品乱码不卡| 久久婷婷成人综合色| 性欧美videos另类喷潮| 国产精品一二三四| 亚洲欧美www| 一卡二卡3卡四卡高清精品视频| 欧美福利电影网| 亚洲精选久久| 亚洲二区在线视频| 欧美在线一区二区| 国产一区二区三区在线观看免费| 性一交一乱一区二区洋洋av| 在线亚洲自拍| 国产精品久久久久久久久久久久久久| 一区二区欧美视频| 日韩一级精品| 国产精品成人免费| 亚洲欧美日韩一区| 亚洲欧美日韩直播| 国产视频在线观看一区二区| 欧美一级在线亚洲天堂| 亚洲欧美日韩综合国产aⅴ| 国产精品高清网站| 久久www成人_看片免费不卡| 欧美一区二区视频网站| 狠狠色丁香久久婷婷综合_中| 美女成人午夜| 欧美成人dvd在线视频| 亚洲欧洲午夜| 亚洲永久精品大片| 欧美日韩中国免费专区在线看| 亚洲一区二区三区精品在线观看| 亚洲综合国产| 亚洲高清在线观看| 99在线精品观看| 国产午夜亚洲精品羞羞网站| 亚洲大胆人体视频| 欧美私人啪啪vps| 久久综合久久久久88| 欧美日韩美女一区二区| 久久精品九九| 欧美久久久久久久| 久久久www成人免费无遮挡大片| 欧美不卡高清| 久久久精品国产99久久精品芒果| 欧美a级一区二区| 欧美伊人久久大香线蕉综合69| 免费短视频成人日韩| 香蕉视频成人在线观看| 欧美va亚洲va香蕉在线| 欧美在线视频a| 欧美另类高清视频在线| 久久久亚洲国产天美传媒修理工| 欧美区日韩区| 美女诱惑一区| 国产啪精品视频| 99国产精品国产精品久久| 一区视频在线看| 亚洲女人天堂成人av在线| 亚洲美女av黄| 久久深夜福利| 久久久另类综合| 国产精品视频精品| 日韩一级二级三级| 亚洲日本视频| 久久免费偷拍视频|