第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

是否保證“ long”至少為32位?

是否保證“ long”至少為32位?

C++
慕尼黑8549860 2019-12-02 09:52:27
通過(guò)閱讀C ++標(biāo)準(zhǔn),我一直了解C ++中不可分割的基本類型的大小如下:sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int)我從3.9.1 / 2推論得出:有四種有符號(hào)整數(shù)類型:“ signed char”,“ short int”,“ int”和“ long int”。在此列表中,每種類型提供的存儲(chǔ)量至少與列表中位于其前的存儲(chǔ)量一樣。普通整數(shù)具有執(zhí)行環(huán)境的體系結(jié)構(gòu)建議的自然大小此外,char3.9.1 /將其大小描述為:足夠大,可以存儲(chǔ)實(shí)現(xiàn)的基本字符集的任何成員。1.7 / 1對(duì)此進(jìn)行了更具體的定義:C ++內(nèi)存模型中的基本存儲(chǔ)單元是字節(jié)。字節(jié)至少大到足以包含基本執(zhí)行字符集的任何成員,并且由連續(xù)的位序列組成,其位數(shù)由實(shí)現(xiàn)定義。這使我得出以下結(jié)論:1 == sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int)其中sizeof告訴我們類型是多少個(gè)字節(jié)。此外,實(shí)現(xiàn)定義的是一個(gè)字節(jié)中有多少位。我們大多數(shù)人可能習(xí)慣于處理8位字節(jié),但標(biāo)準(zhǔn)表示n字節(jié)中有位。Alf P. Steinbach 在這篇文章中說(shuō):保證(至少)32位長(zhǎng)。我了解根據(jù)標(biāo)準(zhǔn)理解的C ++中基本類型的大小,這無(wú)可厚非。通常,由于初學(xué)者是錯(cuò)誤的,所以我會(huì)輕視此聲明,但是由于這是Alf,我認(rèn)為值得進(jìn)一步研究。那么,你怎么說(shuō)呢?標(biāo)準(zhǔn)是否保證長(zhǎng)度至少為32位?如果是這樣,請(qǐng)具體說(shuō)明此保證的方式。我只是看不到。C ++標(biāo)準(zhǔn)專門說(shuō),要了解C ++,您必須了解C(1.2 / 1)1C ++標(biāo)準(zhǔn)隱式定義的值的最小極限的long能容納是LONG_MIN- LONG_MAX 2因此,無(wú)論a long有多大,它都必須足夠大以將LONG_MIN保持為L(zhǎng)ONG_MAX。但是Alf和其他人明確指出long至少必須為32位。這就是我要建立的。C ++標(biāo)準(zhǔn)明確指出,未指定字節(jié)中的位數(shù)(可以是4、8、16、42)。那么如何從能夠容納這些位數(shù)LONG_MIN-LONG_MAX到至少32位進(jìn)行連接?(1)1.2 / 1:以下引用文件對(duì)于應(yīng)用本文件必不可少。凡是注日期的引用文件,僅所引用的版本適用。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本標(biāo)準(zhǔn)。ISO / IEC 2382(所有部分),信息技術(shù)–詞匯ISO / IEC 9899:1999,編程語(yǔ)言– CISO / IEC 10646-1:2000,信息技術(shù)–通用多八位編碼字符集(UCS)–第1部分:體系結(jié)構(gòu)和基本多語(yǔ)言平面(2)定義<climits>為:LONG_MIN -2147483647 // -(2^31 - 1)LONG_MAX +2147483647 //   2^31 - 1
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

C ++使用C標(biāo)準(zhǔn)中定義的限制(C ++:18.3.2(c.limits),C:5.2.4.2.1):


LONG_MIN -2147483647 // -(2^31 - 1)

LONG_MAX +2147483647 //   2^31 - 1

因此,可以確保long至少為32位。


而且,如果您想沿著漫長(zhǎng)的路線了解LONG_MIN/ 是否LONG_MAX可以用a表示long,則必須查看C ++標(biāo)準(zhǔn)中的18.3.1.2(numeric.limits.members):


static constexpr T min() throw(); // Equivalent to CHAR_MIN, SHRT_MIN, FLT_MIN, DBL_MIN, etc.

static constexpr T max() throw(); // Equivalent to CHAR_MAX, SHRT_MAX, FLT_MAX, DBL_MAX, etc.

我將腳注移到了注釋中,因此它與標(biāo)準(zhǔn)中出現(xiàn)的不完全相同。但這基本上意味著std::numeric_limits<long>::min()==LONG_MIN==(long)LONG_MIN和std::numeric_limits<long>::max()==LONG_MAX==(long)LONG_MAX。


因此,即使C ++標(biāo)準(zhǔn)未指定(帶符號(hào)的)負(fù)數(shù)的按位表示,它也必須是二進(jìn)制補(bǔ)碼,并且總共需要32位存儲(chǔ),或者它具有顯式符號(hào)位,這意味著它具有也有32位存儲(chǔ)。


查看完整回答
反對(duì) 回復(fù) 2019-12-02
?
翻過(guò)高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

答案肯定是。閱讀我的OP和所有評(píng)論以了解確切原因,但這是簡(jiǎn)短版本。如果您對(duì)此有疑問或疑問,我建議您閱讀整個(gè)主題和所有評(píng)論。否則,請(qǐng)接受以下說(shuō)法:


C ++標(biāo)準(zhǔn)包括C標(biāo)準(zhǔn)的部分,包括用于定義LONG_MIN和LONG_MAX

LONG_MIN 定義為不大于 -2147483647

LONG_MAX 被定義為不小于 +2147483647

在C ++中,整數(shù)類型以二進(jìn)制形式存儲(chǔ)在基礎(chǔ)表示中

為了表示-2147483647和+2147483647二進(jìn)制,則需要32位。

A C ++長(zhǎng)被保證是能夠代表最小范圍LONG_MIN通過(guò)LONG_MAX

因此,a long必須至少為32位1。


編輯:

LONG_MIN并LONG_MAX具有第5.2.4.2.1節(jié)中C標(biāo)準(zhǔn)(ISO / IEC 9899:TC3)規(guī)定的大小的值:


其實(shí)現(xiàn)定義的值在幅度上應(yīng)等于或大于所示的(絕對(duì)值),并帶有相同的符號(hào)


— minimum value for an object of type long int

LONG_MIN -2147483647 // -(2 ^ 31 - 1)

— maximum value for an object of type long int

LONG_MAX +2147483647 // 2 ^ 31 - 1

1 32位:這并不意味著sizeof (long) >= 4,因?yàn)橐粋€(gè)字節(jié)不一定是8位。根據(jù)標(biāo)準(zhǔn),字節(jié)是一些未指定(平臺(tái)定義)的位數(shù)。盡管大多數(shù)讀者會(huì)發(fā)現(xiàn)這很奇怪,但實(shí)際的硬件CHAR_BIT是16或32。


查看完整回答
反對(duì) 回復(fù) 2019-12-02
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

但是Alf和其他人明確指出long至少必須為32位。這就是我要建立的。C ++標(biāo)準(zhǔn)明確指出未指定字節(jié)中的位數(shù)??赡苁?、8、16、42 ...那么,如何將數(shù)字LONG_MIN-LONG_MAX調(diào)整為至少32位呢?


您需要在值表示形式中使用32位,以便至少獲得那么多的位模式。并且由于C ++需要整數(shù)的二進(jìn)制表示(標(biāo)準(zhǔn)中明確的語(yǔ)言,第3.9.1 / 7節(jié)),因此QED


查看完整回答
反對(duì) 回復(fù) 2019-12-02
  • 3 回答
  • 0 關(guān)注
  • 635 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)