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

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

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

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

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

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

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

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

本文討論的是五種常用的C/C++編譯器對(duì)64位整型的支持,這五種編譯器分別是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0??上У氖牵?strong style="line-height: normal">沒(méi)有一種定義和輸出方式組合,同時(shí)兼容這五種編譯器。為徹底弄清不同編譯器對(duì)64位整型,我寫(xiě)了程序?qū)λ鼈冞M(jìn)行了評(píng)測(cè),結(jié)果如下表。

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

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

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

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

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

部分編譯錯(cuò)誤
"warning: integer constant is too large for 'long' type"
疑問(wèn)描述

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 閱讀(561) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): acm

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区三区男人的天堂| 国产精品jvid在线观看蜜臀 | 久久精品国产久精国产一老狼| 日韩视频在线观看国产| 尤物在线精品| 亚洲免费高清| 午夜欧美精品久久久久久久| 久久精品二区亚洲w码| 久久综合伊人77777尤物| 免费人成精品欧美精品| 欧美激情精品久久久| 亚洲第一伊人| 欧美连裤袜在线视频| 亚洲午夜伦理| 亚洲男人的天堂在线| 亚洲欧美日韩网| 亚洲无人区一区| 欧美成人高清| 国产一区二区三区免费在线观看 | 亚洲黄网站在线观看| 久久成人免费网| 亚洲国产日韩欧美综合久久| 亚洲免费一在线| 亚洲高清自拍| 久久久久欧美精品| 欧美成人精品一区二区三区| 欧美精品色网| 亚洲视频在线免费观看| 国内一区二区在线视频观看| 亚洲成色777777在线观看影院| 亚洲精选一区二区| 亚洲欧美一区二区激情| 另类图片国产| 99国产精品一区| 欧美自拍丝袜亚洲| 欧美日韩精品久久久| 狠狠久久综合婷婷不卡| 国产精品99久久不卡二区| 久久久久久久综合狠狠综合| 亚洲人成高清| 久久一日本道色综合久久| 欧美日韩国产成人在线观看| 国产日韩一区欧美| 中文国产成人精品久久一| 欧美成人精品一区二区| 亚洲一区观看| 欧美日韩在线视频一区| 亚洲人成毛片在线播放| 久久婷婷人人澡人人喊人人爽| 日韩午夜在线视频| 欧美激情一区二区在线| 亚洲精品老司机| 亚洲第一页中文字幕| 久久精品亚洲一区二区三区浴池| 国产精品乱码| 午夜精品福利一区二区蜜股av| 亚洲欧洲精品一区二区| 老司机午夜免费精品视频 | 亚洲视频欧美在线| 美国十次了思思久久精品导航| 国产在线视频欧美| 亚洲在线日韩| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩第一区日日骚| 日韩系列欧美系列| 亚洲欧洲日本专区| 欧美日韩国产综合一区二区| 日韩亚洲不卡在线| 亚洲毛片在线免费观看| 欧美日韩精品一区二区| 99精品欧美一区| 亚洲国内在线| 欧美日韩国产区| 亚洲资源av| 亚洲欧美卡通另类91av| 国产精品欧美在线| 午夜精品一区二区三区四区 | 蜜桃av久久久亚洲精品| 亚洲国产免费| 亚洲欧洲日韩在线| 国产精品分类| 久久精品亚洲一区二区三区浴池| 久久久91精品国产| 国产精品美女久久| 欧美精品在线观看一区二区| 国产一区二区三区久久精品| 免费h精品视频在线播放| 久久综合色一综合色88| 亚洲一区二区免费在线| 欧美一区二区三区电影在线观看 | 亚洲最黄网站| 国产精品多人| 免费亚洲一区| 欧美色网一区二区| 久久亚洲精品网站| 欧美日韩另类视频| 久久精品国产亚洲a| 老司机精品导航| 亚洲欧美视频在线观看视频| 久久久国产精品一区二区中文| 亚洲成人在线免费| 亚洲午夜一区| 亚洲精品乱码久久久久久久久| 亚洲午夜黄色| 亚洲精品久久久蜜桃| 久久av资源网| 99热免费精品| 久久久久久999| 欧美一区二区三区在线观看| 欧美成人午夜剧场免费观看| 亚洲免费视频网站| 乱中年女人伦av一区二区| 亚洲一区欧美| 欧美成人中文字幕| 久久久综合激的五月天| 欧美色精品天天在线观看视频| 久久综合网络一区二区| 欧美四级在线观看| 亚洲欧洲精品成人久久奇米网| 激情综合久久| 亚洲免费在线看| 亚洲视频在线观看一区| 欧美精品福利| 欧美大片国产精品| 狠狠色丁香婷婷综合| 亚洲欧美日韩精品在线| 亚洲欧美高清| 欧美日韩中文在线观看| 亚洲第一网站免费视频| 亚洲高清中文字幕| 欧美一区二区三区视频免费| 亚洲欧美福利一区二区| 欧美日韩国产综合视频在线| 亚洲精品一区久久久久久| 亚洲国产欧洲综合997久久| 久久久久久综合| 欧美va亚洲va香蕉在线| 亚洲国产欧美另类丝袜| 噜噜噜久久亚洲精品国产品小说| 久久伊人免费视频| 亚洲电影中文字幕| 久久久久久久性| 免费亚洲一区| 亚洲精品免费一二三区| 欧美区日韩区| 日韩一级网站| 午夜精品三级视频福利| 国产精品香蕉在线观看| 午夜一区在线| 久久伊人一区二区| 狠狠色综合色综合网络| 亚洲欧美国产77777| 欧美一区高清| 国产亚洲精品aa午夜观看| 久久精品国产免费| 欧美福利视频在线观看| 亚洲日本va在线观看| 欧美日韩国产va另类| 亚洲午夜在线视频| 久久日韩精品| 亚洲另类视频| 国产精品日韩一区二区| 欧美一区二区三区在| 美女诱惑黄网站一区| 亚洲欧洲精品一区二区| 欧美久久99| 亚洲综合色网站| 女生裸体视频一区二区三区| 亚洲裸体在线观看| 国产精品久久国产三级国电话系列| 午夜精品av| 最新中文字幕一区二区三区| 亚洲一区二区三区中文字幕| 国产一区二区三区四区在线观看 | 亚洲少妇诱惑| 国产日韩欧美综合精品| 久久综合色8888| 亚洲午夜精品国产| 免费日韩精品中文字幕视频在线| 一本色道久久综合亚洲精品不卡| 国产精品一区二区久激情瑜伽| 久久久久久尹人网香蕉| 亚洲影院在线观看| 亚洲精品欧美激情| 久久在线观看视频| 亚洲尤物在线| 亚洲激情在线观看| 国产精品视频你懂的| 欧美二区在线看| 久久精品在线| 亚洲资源av| 亚洲免费观看高清在线观看| 老司机免费视频久久| 午夜欧美精品| 亚洲午夜女主播在线直播| 久久久久一区二区三区| 国产精品自拍网站| 欧美激情综合五月色丁香小说| 欧美伊人精品成人久久综合97 | 亚洲黄色三级|