新聞中心
前言:有些題目需要的數(shù)值剛好比 long long 的大值大那么一點點,那么我們就可以用__int128 來搏一搏(并不是所有OJ都支持這個數(shù)據(jù)類型,受編譯標準影響)
成都創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元彭州做網(wǎng)站,已為上家服務,為彭州各地企業(yè)和個人服務,聯(lián)系電話:13518219792
大值是多少
int 大值:2^(32-1)-1【受電腦字長影響】
long 大值:2^(32-1)-1【不可改變】
冷知識:int 大小受電腦字長影響,早期電腦通常為16位,那么 int大值?為:2^(16-1)-1;好一點的電腦為32位,那么 int大值 為:2^(32-1)-1。
現(xiàn)在最差的電腦也有32位,一般為64位,絕大多數(shù)情況默認64位。
即目前 int大值 皆為2^(32-1)-1,不會更大。
long long 大值:2^(64-1)-1【不可改變】?
__int128 大小:2^(128-1)-1 【不可改變】
關于__int128:只能進行四則運算,不能用cin和cout來輸出(本蒟蒻在此不做解釋),不能用位運算來定義大值。
定義大值 / 最小值
C/C++標準中自帶大值和最小值宏定義(除了__int128,可能有,但是我沒找到)
int 大值宏 INT_MAX
long 大值宏 LONG_MAX
long long 大值宏 LONG_LONG_MAX
因為可以四則運算,可以 __int128 MAX = LONG_LONG_MAX * LONG_LONG_MAX 來定義大值(2個LONG_LONG_MAX相乘最高位2^126,__int128大值最高位2^127-1,不會溢出)
最小值就是大值取個反,怕溢出的可以少算一點,比如 10 * LONG_LONG_MIN。
__int128的輸入和輸出
輸入可以用string來讀取,然后按位把值算進去
輸出要手寫,如下示例
#includeusing namespace std;
using maxType=__int128;
maxType a = (maxType)LONG_LONG_MAX*LONG_MAX;
void print(maxType x){
stacko;
while(x)o.push(x%10),x/=10;
while(!o.empty())cout<
可能會用到的該知識點的題:[傳智杯 #5 初賽] E-梅莉的市場經(jīng)濟學 - 洛谷
參考博文:詳解__int128 - FReQuenter - 博客園(更具體,包含什么時候可以使用__int128)(看什么看,不如直接搏一搏)
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站欄目:詳解-創(chuàng)新互聯(lián)
文章地址:http://www.ef60e0e.cn/article/cdcech.html