亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

      測試代碼如下所示:

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中選擇能匹配的空間最小的一個作為其數(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中增加了對二進制字面值常量(binary literal)的支持:以2為基數(shù)的數(shù)字,數(shù)字間可用分隔符’分隔,帶有0b或0B前綴后面跟著一個或多個二進制數(shù)字(0, 1)。

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

      測試代碼如下:

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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)打飛機小游戲

    C語言實現(xiàn)打飛機小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的打飛機小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 詳解C++中的數(shù)據(jù)抽象

    詳解C++中的數(shù)據(jù)抽象

    這篇文章主要介紹了詳解C++中的數(shù)據(jù)抽象,數(shù)據(jù)抽象是指,只向外界提供關(guān)鍵信息,并隱藏其后臺的實現(xiàn)細節(jié),即只表現(xiàn)必要的信息而不呈現(xiàn)細節(jié),需要的朋友可以參考下
    2023-05-05
  • C語言中.與->的用法介紹

    C語言中.與->的用法介紹

    結(jié)構(gòu)體用點,結(jié)構(gòu)體指針用箭頭,簡單的說,就是一個快捷方式,一個語法糖,這篇文章主要介紹了C語言中.與->的區(qū)別及用法,需要的朋友可以參考下
    2023-05-05
  • OpenCV利用霍夫變換實現(xiàn)交通車道線檢測

    OpenCV利用霍夫變換實現(xiàn)交通車道線檢測

    經(jīng)典霍夫變換用來檢測圖像中的直線,后來霍夫變換經(jīng)過擴展可以進行任意形狀物體的識別,例如圓和橢圓。本文就來利用霍夫變換實現(xiàn)交通車道線檢測,需要的可以參考一下
    2022-09-09
  • 基于c的for循環(huán)中改變變量值的問題

    基于c的for循環(huán)中改變變量值的問題

    本篇文章是對c語言的for循環(huán)中改變變量值的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言程序的編譯與預處理詳解

    C語言程序的編譯與預處理詳解

    這篇文章主要介紹了C語言程序的編譯與預處理,包括介紹了C和C++混合編程的情況,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C語言實現(xiàn)紙牌游戲(小貓釣魚)

    C語言實現(xiàn)紙牌游戲(小貓釣魚)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)紙牌游戲,小貓釣魚游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • C++實現(xiàn)LeetCode(50.求x的n次方)

    C++實現(xiàn)LeetCode(50.求x的n次方)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(50.求x的n次方),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++11 Unicode編碼轉(zhuǎn)換

    C++11 Unicode編碼轉(zhuǎn)換

    這篇文章主要介紹了C++11 Unicode編碼轉(zhuǎn)換的相關(guān)資料,幫助大家更好的理解和學習c++11,感興趣的朋友可以了解下
    2020-08-08
  • C++報錯 XX does not name a type;field `XX’ has incomplete type的解決方案

    C++報錯 XX does not name a type;

    這篇文章主要給大家介紹了C++報錯 XX does not name a type;field `XX’ has incomplete type解決方案,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2023-08-08

最新評論