最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++14中binary literals的使用詳解

 更新時(shí)間:2023年06月12日 10:07:03   作者:fengbingchun  
這篇文章主要介紹了C++14中binary literals的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

      一個(gè)形如42的值被稱作字面值常量(literal),這樣的值一望而知。每個(gè)字面值常量都對(duì)應(yīng)一種數(shù)據(jù)類型,字面值常量的形式和值決定了它的數(shù)據(jù)類型。

      我們可以將整型字面值寫作十進(jìn)制(基數(shù)為10)、八進(jìn)制(基數(shù)為8)或十六進(jìn)制(基數(shù)為16)數(shù)的形式。以0開頭的整數(shù)代表八進(jìn)制數(shù),以0x或0X開頭的代表十六進(jìn)制數(shù)。

      整型字面值具體的數(shù)據(jù)類型由它的值和符號(hào)決定。默認(rèn)情況下,十進(jìn)制字面值的帶符號(hào)數(shù),八進(jìn)制和十六進(jìn)制字面值既可能是帶符號(hào)的也可能是無(wú)符號(hào)的。十進(jìn)制字面值的類型是int、long和long long中尺寸最小的那個(gè)(例如,三者當(dāng)中最小是int),當(dāng)然前提是這種類型要能容納下當(dāng)前的值。八進(jìn)制和十六進(jìn)制字面值的類型是能容納其數(shù)值的int、unsigned int、long、unsigned long、long long和unsigned long long中的尺寸最小者。如果一個(gè)字面值連與之關(guān)聯(lián)的最大的數(shù)據(jù)類型都放不下,將產(chǎn)生錯(cuò)誤。類型short沒有對(duì)應(yīng)的字面值。

      盡管整型字面值可以存儲(chǔ)在帶符號(hào)數(shù)據(jù)類型中,但嚴(yán)格來(lái)說,十進(jìn)制字面值不會(huì)是負(fù)數(shù)。如果我們使用了一個(gè)形如-42的負(fù)十進(jìn)制字面值,那個(gè)負(fù)號(hào)并不在字面值之內(nèi),它的作用僅僅是對(duì)字面值取負(fù)值而已。

      指定字面值的類型列表如下:

      注:以上內(nèi)容主要整理自《C++ Primer(Fifth Edition)》

      測(cè)試代碼如下所示:

int test_literal_1()
{
	int d = 42; // decimal notation
	int o = 052; // octal notation
	int x = 0x2a; // hexadecimal notation
	int X = 0X2A; // hexadecimal notation
	std::cout << "d:" << d << ", o:" << o << ", x:" << x << ", X:" << X << "\n"; // d:42, o:42, x:42, X:42
	auto v1 = 42U; // or 42u: 將從unsigned int, unsigned long和unsigned long long中選擇能匹配的空間最小的一個(gè)作為其數(shù)據(jù)類型
	auto v2 = 42L; // or 42l: 字面值的類型至少是long
	auto v3 = 42UL; // or 42ul: 數(shù)據(jù)類型將根據(jù)具體數(shù)值情況或者取unsigned long,或者取unsigned long long
	std::cout << "v1:" << v1 << ", v2:" << v2 << ", v3:" << v3 << "\n"; // v1:42, v2:42, v3:42
	std::cout << "v1 type:" << typeid(v1).name() << ", v2 type:" << typeid(v2).name() << ", v3 type:" << typeid(v3).name() << "\n"; // v1 type:unsigned int, v2 type:long, v3 type:unsigned long
	return 0;
}

      C++14中增加了對(duì)二進(jìn)制字面值常量(binary literal)的支持:以2為基數(shù)的數(shù)字,數(shù)字間可用分隔符’分隔,帶有0b或0B前綴后面跟著一個(gè)或多個(gè)二進(jìn)制數(shù)字(0, 1)。

      自C++14起,在整數(shù)和浮點(diǎn)數(shù)序列中,任意兩位數(shù)字之間允許使用可選的分隔符’,在確定字面值常量時(shí)將忽略它們。

      測(cè)試代碼如下:

int test_literal_14_1()
{
	auto v1 = 0b110;
	auto v2 = 0b1111'1111;
	auto v3 = 0B1111'1111;
	std::cout << "v1:" << v1 << ", v2:" << v2 <<", v3:" << v3 << "\n"; // v1:6, v2:255, v3:255
	std::cout << "v1 type:" << typeid(v1).name()
		      << ", v2 type:" << typeid(v2).name()
		      << ", v3 type:" << typeid(v3).name() << "\n"; // v1 type:int, v2 type:int, v3 type:int
	auto v4 = 0b10U;
	auto v5 = 0B10L;
	auto v6 = 0b0000'0010ULL;
	std::cout << "v4:" << v4 << ", v5:" << v5 << ", v6:" << v6 << "\n"; // v4:2, v5:2, v6:2
	std::cout << "v4 type:" << typeid(v4).name()
			  << ", v5 type:" << typeid(v5).name()
			  << ", v6 type:" << typeid(v6).name() << "\n"; // v4 type:unsigned int, v5 type:long, v6 type:unsigned __int64
	return 0;
}

      執(zhí)行結(jié)果如下所示:注意:std::type_info::name在windows和linux輸出的差異

      GitHubhttps://github.com/fengbingchun/Messy_Test

到此這篇關(guān)于C++14中binary literals的使用的文章就介紹到這了,更多相關(guān)C++binary literals使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++ 智能指針基礎(chǔ)詳解

    c++ 智能指針基礎(chǔ)詳解

    這篇文章主要介紹了c++ 智能指針基礎(chǔ)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-02-02
  • C語(yǔ)言中qsort函數(shù)用法實(shí)例小結(jié)

    C語(yǔ)言中qsort函數(shù)用法實(shí)例小結(jié)

    這篇文章主要介紹了C語(yǔ)言中qsort函數(shù)用法,包括了針對(duì)各種數(shù)據(jù)類型參數(shù)的排序,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 基于malloc與free函數(shù)的實(shí)現(xiàn)代碼及分析

    基于malloc與free函數(shù)的實(shí)現(xiàn)代碼及分析

    本篇文章介紹了malloc與free函數(shù)的實(shí)現(xiàn)代碼及分析。需要的朋友參考下
    2013-05-05
  • c++友元函數(shù)與友元類的深入解析

    c++友元函數(shù)與友元類的深入解析

    友元函數(shù)的特點(diǎn)是能夠訪問類中的私有成員的非成員函數(shù)。友元函數(shù)從語(yǔ)法上看,它與普通函數(shù)一樣,即在定義上和調(diào)用上與普通函數(shù)一樣
    2013-07-07
  • C++ primer超詳細(xì)講解順序容器

    C++ primer超詳細(xì)講解順序容器

    本文主要介紹了C++順序容器(vector、deque、list)的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • c++中的bind使用方法

    c++中的bind使用方法

    bind是這樣一種機(jī)制,它可以預(yù)先把指定可調(diào)用實(shí)體的某些參數(shù)綁定到已有的變量,產(chǎn)生一個(gè)新的可調(diào)用實(shí)體,這種機(jī)制在回調(diào)函數(shù)的使用過程中也頗為有用。接下來(lái)通過本文給大家介紹c++中的bind使用方法,感興趣的朋友一起看看吧
    2022-01-01
  • Linux搭建C++開發(fā)調(diào)試環(huán)境的方法步驟

    Linux搭建C++開發(fā)調(diào)試環(huán)境的方法步驟

    這篇文章主要介紹了Linux搭建C++開發(fā)調(diào)試環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C語(yǔ)言移除元素的三種思路講解

    C語(yǔ)言移除元素的三種思路講解

    這篇文章主要介紹了C語(yǔ)言移除元素的三種思路,總的來(lái)說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來(lái)一種解題優(yōu)化的思路
    2022-10-10
  • C++ ofstream與ifstream詳細(xì)用法

    C++ ofstream與ifstream詳細(xì)用法

    ofstream是從內(nèi)存到硬盤,ifstream是從硬盤到內(nèi)存,其實(shí)所謂的流緩沖就是內(nèi)存空間
    2013-07-07
  • C++實(shí)現(xiàn)頁(yè)面的緩沖區(qū)管理器

    C++實(shí)現(xiàn)頁(yè)面的緩沖區(qū)管理器

    這篇文章主要介紹了C++實(shí)現(xiàn)頁(yè)面的緩沖區(qū)管理器,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

五常市| 宜章县| 华池县| 石家庄市| 岑溪市| 济南市| 云梦县| 鹿泉市| 洛川县| 双流县| 大新县| 同江市| 左云县| 大方县| 浮梁县| 米泉市| 繁昌县| 叶城县| 福鼎市| 沙洋县| 灵台县| 通化市| 阜平县| 平和县| 宿州市| 城市| 土默特左旗| 富平县| 保山市| 田林县| 巴中市| 册亨县| 天津市| 建德市| 临汾市| 木里| 弥勒县| 万源市| 苍南县| 利辛县| 宣恩县|