(二十七)整型字面值(常量) 多種進製

2021-07-08 13:37:08 字數 1561 閱讀 8562

整型字面值(常量)是顯式書寫的常量,如1234。——(我真沒看懂這個定義)

c和c++都能以三種不同的計數方式來書寫整數。他們基數不同,用前一或兩位來標識數字常量的基數。(或者說是進製?)

①十進位制:基數為10。 第一位是1~9。例如11他就是十進位制的11;

②八進位制:基數為8(逢8進一)。第一位是0,例如033,是十進位制的27;

③十六進製制:基數是16(逢16進一)。第一位是0x或者0x,例如0x11,是十進位制的17(1*16+1)。

例如:

#include using namespace std;

int main()

其輸出為:

a= 123

b= 83

c= 291

具體計算為:

a=123沒什麼好說的;

b=1*64+2*8+3*1=73;//第一位數字1要乘以8的二次方,第二位數字2乘以8的一次方,第三位數字3乘以8的0次方(即1)。如果是四位,則第一位要乘以8的三次方(512)

c=1*256+2*16+3*1=273; //第一位數字1要乘以16的二次方,第二位數字2乘以16的一次方,第三位數字3乘以16的0次方(即1)。

即八進位制和十六進製制在計算的時候,其換算成十進位制的方法是從右往左數每乙個數字,分別乘以8(或16)的x-1次方(x為從右往左的位數,第一位x=1,第二位x=2),然後相加求和則為十進位制

ps:(1)無論是顯示的或者輸入的數字是八進位制十進位制十六進製制,反正在記憶體裡都以二進位制來儲存(0和1),所以並不會省記憶體。

(2)無論是哪個進製,程式都一樣能讀懂,所以沒必要在程式非要把十六進製制的轉為十進位制來看或者輸入(程式能看懂就ok了)。

(3)如果以十六進製制或者八進位制來顯示值的話,可以用cout的一些特殊特性。在標頭檔案iostream裡面,提供了控制符endl用於重起一行。還提供了dec,hex,oct分別用於指示cout以十進位制(dec)、八進位制(oct)和十六進製制(hex)來顯示整數。如**:

#include using namespace std;

int main()

輸出結果為:

a= 123

b= 83

c= 291

a= 7b ←這裡以十六進製制的方式顯示a

a= 173 ←這裡以八進位制的方式顯示a

a= 123 ←這裡以十進位制的方式顯示a

請按任意鍵繼續. . .

注意:①八進位制那裡的顯示,前面沒有0。但是輸入的時候要加0,不然程式以為你輸入的是十進位制。同樣,十六進製制前面,也沒有0x。至於如何讓他以有的方式來顯示,(我還不知道……)

②cout<

C 整型字面值

整型字面值 常量 是顯式的書寫的常量 如 222,333。和c相同,c 能夠以三種不同的計數方式來書寫整數,基數為10,基數為8 老式unix版本 基數為16 硬體黑客的最愛 c 表示法 c 使用前一位 兩 來標識數字常量的基數。如果第一位為1 9,則基數為10,因此93是以10為基數的。如果第一位...

隨筆(二十七)

1.安卓開發外掛程式推薦 2.必知必會 android 測試相關的方方面面都在這兒 3android ui效能優化 檢測應用中的ui卡頓 4.recyclerview的拖動和滑動 第一部分 基本的itemtouchhelper示例 支援側滑和排序 5 android觸控事件分發機制詳解 6.andr...

題解二十七

給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。示例...