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

為你寫詩

c/c++
隨筆 - 32, 文章 - 0, 評論 - 3, 引用 - 0
數(shù)據(jù)加載中……

acm中數(shù)據(jù)表示

C++的64位整數(shù)
         原文: http://www.cnitblog.com/cockerel/archive/2006/08/16/15356.html
  在做ACM題時,經(jīng)常都會遇到一些比較大的整數(shù)。而常用的內(nèi)置整數(shù)類型常常顯得太小了:其中l(wèi)ong 和 int 范圍是
[-2^31,2^31),即-2147483648~2147483647。而unsigned范圍是[0,2^32),即0~4294967295。也就是說,
常規(guī)的32位整數(shù)只能夠處理40億以下的數(shù)。
  那遇到比40億要大的數(shù)怎么辦呢?這時就要用到C++的64位擴展了。不同的編譯器對64位整數(shù)的擴展有所不同。
基于ACM的需要,下面僅介紹VC6.0與g++編譯器的擴展。
  VCVC6.0的64位整數(shù)分別叫做__int64與unsigned __int64,其范圍分別是[-2^63, 2^63)與[0,2^64),
即-9223372036854775808~9223372036854775807與0~18446744073709551615(約1800億億)。對64位整數(shù)
的運算與32位整數(shù)基本相同,都支持四則運算與位運算等。當進行64位與32位的混合運算時,32位整數(shù)會被隱式轉換成64位整數(shù)。但是,VC的輸入輸出與__int64的兼容就不是很好了,如果你寫下這樣一段代碼:
1 __int64 a;
2 cin >> a;
3 cout << a;

那么,在第2行會收到“error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '__int64' (or there is no acceptable conversion)”的錯誤;在第3行會收到“error C2593: 'operator <<' is ambiguous”的錯誤。那是不是就不能進行輸入輸出呢?當然不是,你可以使用C的寫法:
scanf("%I64d",&a);
printf(
"%I64d",a);
就可以正確輸入輸出了。當使用unsigned __int64時,把"I64d"改為"I64u"就可以了。
  OJ通常使用g++編譯器。其64位擴展方式與VC有所不同,它們分別叫做long long 與 unsigned long long。處理規(guī)模與除輸入輸出外的使用方法同上。對于輸入輸出,它的擴展比VC好。既可以使用
1long long a;
2cin>>a;
3cout<<a;
也可以使用
scanf("%lld",&a);
printf(
"%lld",a);

使用無符號數(shù)時,將"%lld"改成"%llu"即可。
  最后我補充一點:作為一個特例,如果你使用的是Dev-C++的g++編譯器,它使用的是"%I64d"而非"%lld"。

http://www.cmykrgb123.cn/blog/

在C/C++中,64為整型一直是一種沒有確定規(guī)范的數(shù)據(jù)類型?,F(xiàn)今主流的編譯器中,對64為整型的支持也是標準不一,形態(tài)各異。一般來說,64位整型的定義方式有l(wèi)ong long和__int64兩種(VC還支持_int64),而輸出到標準輸出方式有printf(”%lld”,a),printf(”%I64d”,a),和cout << a三種方式。

本文討論的是五種常用的C/C++編譯器對64位整型的支持,這五種編譯器分別是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,沒有一種定義和輸出方式組合,同時兼容這五種編譯器。為徹底弄清不同編譯器對64位整型,我寫了程序對它們進行了評測,結果如下表。

變量定義 輸出方式 gcc(mingw32) g++(mingw32) gcc(linux i386) g++(linux i386) MicrosoftVisual C++ 6.0
long long “%lld” 錯誤 錯誤 正確 正確 無法編譯
long long “%I64d” 正確 正確 錯誤 錯誤 無法編譯
__int64 “lld” 錯誤 錯誤 無法編譯 無法編譯 錯誤
__int64 “%I64d” 正確 正確 無法編譯 無法編譯 正確
long long cout 非C++ 正確 非C++ 正確 無法編譯
__int64 cout 非C++ 正確 非C++ 無法編譯 無法編譯
long long printint64() 正確 正確 正確 正確 無法編譯

上表中,正確指編譯通過,運行完全正確;錯誤指編譯雖然通過,但運行結果有誤;無法編譯指編譯器根本不能編譯完成。觀察上表,我們可以發(fā)現(xiàn)以下幾點:

  1. long long定義方式可以用于gcc/g++,不受平臺限制,但不能用于VC6.0。
  2. __int64是Win32平臺編譯器64位長整型的定義方式,不能用于Linux。
  3. “%lld”用于Linux i386平臺編譯器,”%I64d”用于Win32平臺編譯器。
  4. cout只能用于C++編譯,在VC6.0中,cout不支持64位長整型。

表中最后一行輸出方式中的printint64()是我自己寫的一個函數(shù),可以看出,它的兼容性要好于其他所有的輸出方式,它是一段這樣的代碼:

void printint64(long long a)
            {
            if (a<=100000000)
            printf("%d\n",a);
            else
            {
            printf("%d",a/100000000);
            printf("%08d\n",a%100000000);
            }
            }
這種寫法的本質是把較大的64位整型拆分為兩個32位整型,然后依次輸出,低位的部分要補0。

部分編譯錯誤
"warning: integer constant is too large for 'long' type"
疑問描述

Keywords: EDK, long long integer, 64-bit, SW, mb-gcc, powerpc-eabi-gcc, compiler, C/C++ , g++

When I define a long long integer data type in SW application in EDK, a warning / error similar to the following occurs:

"warning: integer constant is too large for 'long' type".

Example:
int main ()
{
long long int test = 0x0008888000000000;
},

解決方案
The warning message can be safely ignored, as mb-gcc is not doing anything wrong; the 64-bit computing is in fact correct.

This warning occurs because gcc is strict in syntax and requires LL on the end of such constants. This warning message disappears if the integer is appended with LL.

long long int test = 0x0008888000000000LL;

posted on 2011-04-14 14:40 pp_zhang 閱讀(567) 評論(0)  編輯 收藏 引用 所屬分類: acm


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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美久久久久一区二区三区| 欧美成人精品在线播放| 亚洲影院在线| 99精品欧美一区| 国产精品毛片在线看| 中文av一区二区| 亚洲欧美国产不卡| 国内自拍一区| 亚洲国产欧美一区| 欧美日韩亚洲视频一区| 亚洲综合色噜噜狠狠| 久久久www成人免费无遮挡大片| 一区二区三区亚洲| 日韩视频在线永久播放| 国产精品一区免费观看| 欧美国产日韩亚洲一区| 欧美特黄一级大片| 欧美岛国激情| 国产偷国产偷精品高清尤物| 亚洲国产91色在线| 久久综合色天天久久综合图片| 午夜国产不卡在线观看视频| 亚洲精品系列| 久久一二三四| 毛片av中文字幕一区二区| 国产精品日韩欧美一区二区| 亚洲第一中文字幕| 亚洲国产1区| 久久久久久亚洲精品不卡4k岛国| 中国成人黄色视屏| 欧美日韩一区二区在线| 欧美激情精品久久久久久| 国产日韩欧美不卡| 亚洲欧美日韩专区| 久久爱另类一区二区小说| 国产精品婷婷午夜在线观看| 亚洲靠逼com| 一区二区三区欧美日韩| 欧美精品久久天天躁| 亚洲人成网站影音先锋播放| 一色屋精品视频在线看| 久久精品国产综合精品| 久久综合一区二区| 91久久久久| 欧美日韩国产一区二区三区地区| 亚洲韩国日本中文字幕| 在线视频欧美日韩精品| 国产精品免费在线| 久久九九精品| 亚洲三级免费| 久久久久久久久一区二区| 亚洲国产精品久久久久婷婷老年 | 亚洲福利在线观看| 99精品99久久久久久宅男| 国产精品h在线观看| 欧美在线999| 99国产精品自拍| 黄色成人在线网站| 欧美日韩精品免费看| 国产精品99久久久久久人| 久久成人一区二区| 亚洲视频第一页| 亚洲电影中文字幕| 国产日韩av在线播放| 国产精品久久网站| 美日韩精品视频免费看| 翔田千里一区二区| 亚洲一区二区三区在线播放| 亚洲精品视频二区| 欧美成人综合在线| 久久综合狠狠| 另类国产ts人妖高潮视频| 欧美在线综合| 久久精品国产一区二区三区免费看 | 国产视频精品xxxx| 国产精品久久久久久久免费软件| 欧美怡红院视频| 欧美成人国产| 亚洲小说欧美另类婷婷| 亚洲男人第一网站| 日韩一级片网址| 久久精品国产清自在天天线 | 久久久国产午夜精品| 91久久在线观看| 久久亚洲精品网站| 国产综合激情| 久久精品国产69国产精品亚洲 | 久久亚洲春色中文字幕| 国产精品久久久久av| 亚洲精品国久久99热| 亚洲视频大全| 欧美高清自拍一区| 亚洲深夜福利网站| 欧美h视频在线| 亚洲视频1区| 久久国产一区二区三区| 欧美日韩国产欧美日美国产精品| 国产乱码精品| 一本色道久久88综合日韩精品| 久久乐国产精品| 亚洲欧美另类中文字幕| 欧美日韩中文字幕| 日韩西西人体444www| 久久夜色精品国产| 午夜精品福利在线观看| 国产日韩在线播放| 久久精品二区亚洲w码| 亚洲女同精品视频| 国产美女扒开尿口久久久| 亚洲精品国久久99热| 久久在线视频在线| 日韩一级成人av| 亚洲人成高清| 欧美特黄a级高清免费大片a级| 国产深夜精品福利| 久久免费视频在线| 欧美人在线观看| 午夜精品久久久久久久99樱桃 | 亚洲激情女人| 久久婷婷色综合| 久久一二三四| 亚洲精品日韩综合观看成人91| 欧美91精品| 欧美日本亚洲| 久久国产黑丝| 欧美大片免费久久精品三p| 99riav久久精品riav| 久久爱www| 亚洲天堂激情| 久久久99国产精品免费| 亚洲天堂网在线观看| 久久免费偷拍视频| 欧美一级午夜免费电影| 欧美人交a欧美精品| 国产精品久久久久久久久久久久 | 亚洲国产精品一区二区www| 欧美99久久| 国产亚洲精品一区二区| 一本久久a久久免费精品不卡| 亚洲高清成人| 欧美激情性爽国产精品17p| 欧美jizz19性欧美| 一区二区激情视频| 国产精品九色蝌蚪自拍| 欧美亚洲视频一区二区| 久久久亚洲国产美女国产盗摄| 国产精品福利av| 亚洲精选在线观看| 在线视频一区二区| 国产精品久久激情| 日韩一级精品| 亚洲一区在线看| 国产精品自拍在线| 久久精品成人欧美大片古装| 亚洲风情在线资源站| 欧美国产视频一区二区| 亚洲精品系列| 欧美一区=区| 国内视频一区| 欧美激情按摩| 亚洲欧美另类久久久精品2019| 久久久久成人网| 亚洲视频一区二区| 国产在线视频欧美一区二区三区| 久久久美女艺术照精彩视频福利播放| 久久久久久自在自线| 亚洲日本无吗高清不卡| 国产精品久久久久久av福利软件| 亚洲免费视频一区二区| 亚洲人成网站999久久久综合| 久久久久天天天天| 亚洲美女区一区| 亚洲人成77777在线观看网| 国内成+人亚洲+欧美+综合在线| 久久久精品日韩欧美| 亚洲日本va在线观看| 狠狠入ady亚洲精品经典电影| 国产乱码精品1区2区3区| 国产精品美女久久久久av超清| 欧美日韩精品三区| 欧美日韩国产精品| 亚洲日本中文字幕| 黄色一区二区三区四区| 国产亚洲精品bt天堂精选| 国产精品高潮呻吟久久av黑人| 欧美日韩一区三区| 国产精品你懂的在线| 亚洲一区亚洲| 男人的天堂成人在线| 亚洲成人资源网| 最新亚洲激情| 国产亚洲精品久久飘花| 一本高清dvd不卡在线观看| 亚洲电影免费观看高清| 久久精品一二三区| 久久精品卡一| 亚洲精品国久久99热| 欧美精品日韩一本| 欧美岛国在线观看| 国产午夜久久久久|