日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言变量加常量,C语言(二)---常量与变量(示例代码)

發(fā)布時(shí)間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言变量加常量,C语言(二)---常量与变量(示例代码) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、進(jìn)制

1.1 二進(jìn)制

1.1 簡(jiǎn)介

二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼來(lái)表示的數(shù)。它的基數(shù)是2,進(jìn)位規(guī)則是“逢二進(jìn)1”,借位規(guī)則是“借一當(dāng)二”。當(dāng)前的計(jì)算機(jī)系統(tǒng)使用的基本上是二進(jìn)制系統(tǒng)。

1.2 二進(jìn)制數(shù)據(jù)表示法

二進(jìn)制沒(méi)有2只有0和1,逢2進(jìn)1,其權(quán)的大小順序?yàn)?2、21、2o。例如:

二進(jìn)制數(shù)據(jù)0001代表十進(jìn)制的1,二進(jìn)制數(shù)據(jù)0010代表十進(jìn)制的2,

二進(jìn)制數(shù)據(jù)0011代表十進(jìn)制的3,二進(jìn)制數(shù)據(jù)0100代表十進(jìn)制的4,

二進(jìn)制數(shù)據(jù)0101代表十進(jìn)制的5,二進(jìn)制數(shù)據(jù)0110代表十進(jìn)制的6,

二進(jìn)制數(shù)據(jù)1000代表十進(jìn)制的8,二進(jìn)制數(shù)據(jù)1001代表十進(jìn)制的9,

二進(jìn)制數(shù)據(jù)1010代表十進(jìn)制的10,二進(jìn)制數(shù)據(jù)1011代表十進(jìn)制的11,

二進(jìn)制數(shù)據(jù)1101代表十進(jìn)制的13,二進(jìn)制數(shù)據(jù)1111代表十進(jìn)制的15。

1.3 二進(jìn)制數(shù)據(jù)的特點(diǎn)

在一個(gè)二進(jìn)制數(shù)字的尾部每次多加一個(gè)0代表這個(gè)數(shù)字乘以2,就如同十進(jìn)制的尾部每次多加一個(gè)0代表乘以10。例如:

二進(jìn)制數(shù)據(jù)0001代表十進(jìn)制的1,二進(jìn)制數(shù)據(jù)0010代表十進(jìn)制的2,

二進(jìn)制數(shù)據(jù)0100代表十進(jìn)制的4,二進(jìn)制數(shù)據(jù)1000代表十進(jìn)制的8,

2的常見(jiàn)倍數(shù):1 2 4 8 16 32 64 128 256 512 1024 2048 4096

1.2 十六進(jìn)制

英文名稱:hexadecimal ,是計(jì)算機(jī)中數(shù)據(jù)的一種表示方法。同我們?nèi)粘V械氖M(jìn)制表示法不一樣。它由0-9,A-F組成,字母不區(qū)分大小寫(xiě)。

與10進(jìn)制的對(duì)應(yīng)關(guān)系是:0-9對(duì)應(yīng)0-9;A-F對(duì)應(yīng)10-15;N進(jìn)制的數(shù)可以用0---(N-1)的數(shù)表示超過(guò)9的用字母A-F。二進(jìn)制只有0和1沒(méi)有2,十進(jìn)制只有0-9的數(shù)字沒(méi)有10,十六進(jìn)制只有0-F,也就是0到15的數(shù)字沒(méi)有16。

在一個(gè)十六進(jìn)制數(shù)字的尾部每次多加一個(gè)0代表這個(gè)數(shù)字乘以16,就如同十進(jìn)制的尾部每次多加一個(gè)0代表乘以10。例如:

十進(jìn)制的32表示成十六進(jìn)制就是:20

十六進(jìn)制的20代表十進(jìn)制的:2×161+0×16o=32

十六進(jìn)制的A5代表十進(jìn)制的:10×161+5=165

十六進(jìn)制的100代表十進(jìn)制的:16×16=256

十六進(jìn)制的23F代表十進(jìn)制的:2×16×16+3×16+15=575

1.3 進(jìn)制的轉(zhuǎn)換

10進(jìn)制轉(zhuǎn)2進(jìn)制:讓個(gè)位對(duì)2取余數(shù)得出是1還是0,對(duì)其他位除以對(duì)應(yīng)的2的倍數(shù)

二、常量

C語(yǔ)言的常量包括:整數(shù)常量、浮點(diǎn)數(shù)常量、字符常量和字符串常量。

2.1 整數(shù)常量的表示方法

十進(jìn)制表達(dá)式,和普通數(shù)字的表達(dá)方法一致。例如:13,28,-52,-1000等等

十六進(jìn)制表達(dá)式,以0x開(kāi)頭。例如:0xA1,0xC8,-0x20,-0x500等等

八進(jìn)制表達(dá)式,以0開(kāi)頭。例如:032,-011

注意:0開(kāi)頭的常量看上去好像是十進(jìn)制,其實(shí)不是了,已經(jīng)是八進(jìn)制了,八進(jìn)制中只有0-7之間的數(shù)字,8和9都錯(cuò)誤代碼。

注意:C語(yǔ)言并沒(méi)有提供二進(jìn)制常量表達(dá)式。

2.2 浮點(diǎn)數(shù)常量

浮點(diǎn)數(shù)常量,通俗地說(shuō)就是帶小數(shù)點(diǎn)的數(shù)字,表達(dá)式的中必須含有小數(shù)點(diǎn),即使小數(shù)部分是0也要缺省帶小數(shù)點(diǎn)。

主要有兩種表達(dá)式:

單精度浮點(diǎn)數(shù):尾部帶f的浮點(diǎn)數(shù)代表是單精度浮點(diǎn)數(shù)。例如:0.5f,88.2f,-55.0f等等。

雙精度浮點(diǎn)數(shù):尾部不帶f的浮點(diǎn)數(shù)代表是雙精度浮點(diǎn)數(shù)。例如:0.88,99.5,-111.356等等。

一般認(rèn)為雙精度浮點(diǎn)數(shù)比單精度浮點(diǎn)數(shù)表達(dá)的范圍要大很多,包括整數(shù)部分和小數(shù)部分,雙精度表達(dá)的數(shù)字長(zhǎng)度要大很多。

2.3 字符常量

字符常量是用單引號(hào)將一個(gè)字符括起來(lái)的構(gòu)成,每種被括起來(lái)不同的字符代表一個(gè)不同的數(shù)字(就如同每個(gè)學(xué)生有不同的名字,而且還有個(gè)不同的學(xué)號(hào)一樣)。

所有字符與數(shù)值的對(duì)照表就是ASCII編碼表,作為字符常量使用的ASCII編碼主要是使用0-127范圍內(nèi)的數(shù)字。其中0~31及127(共33個(gè))是控制字符或通信專用字符,其余為可顯示字符。

例如:char c = ‘A’;

‘A’代表的是一個(gè)數(shù)字65,因?yàn)樵贏SCII編碼表中A的數(shù)值是65,依此類推:

‘ B’代表66,‘a(chǎn)’代表97,

‘X’代表88,‘5’代表53,

‘=’代表61,‘|’代表124,

’ ’空格代表32等等。

因此,字符常量實(shí)際上也是一種整數(shù)常量,只不過(guò)字符常量所表達(dá)的范圍比較小而已。

所有的ASCII碼都可以用“\”加數(shù)字(2位的16進(jìn)制數(shù)字或3位的8進(jìn)制數(shù)字)來(lái)表示。

在C語(yǔ)言中常用些字母前加“\”,來(lái)表示常見(jiàn)的那些不能顯示的ASCII字符,這樣的字符就叫做轉(zhuǎn)義字符。例如:char c = ‘\n’;其中‘\n’代表10,被打印輸出時(shí)代表?yè)Q行“new line”。依此類推:‘t’代表9,被打印輸出時(shí)代表間隔一個(gè)TAB距離“Table”。

‘\0’代表0,打印輸出時(shí)代表字符串結(jié)尾。

‘\\’代表92,打印輸出時(shí)是一條反斜杠。

注意在C語(yǔ)言中要打印一條反斜杠,在字符常量中必須使用‘\\’來(lái)表示。

‘\”’代表34,打印輸出時(shí)代表是一個(gè)雙引號(hào)。

char c=‘\x25’; 代表37打印輸出的是% ,Char c=‘\053’; 代表43打印輸出的是+。

2.4 字符串常量

字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符集合。

例如,下面的是合法的字符串常量:"how do you do.","CHINA","a","$123.45",

存儲(chǔ):字符串中的字符依次存儲(chǔ)在內(nèi)存中一塊連續(xù)的區(qū)域內(nèi),并且把空字符‘ \0’自動(dòng)附加到字符串的尾部作為字符串的結(jié)束標(biāo)志。故字符個(gè)數(shù)為n的字符串在內(nèi)存中應(yīng)占(n+1)個(gè)字節(jié)。

使用printf可以輸出字符串,例如:printf("how do you do.");

與字符常量的比較:

字符常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符;而字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符集合。

字符常量本質(zhì)上是一個(gè)數(shù)字,這個(gè)數(shù)字對(duì)應(yīng)了一個(gè)字符;而字符串常量本質(zhì)上是一個(gè)字符集合的內(nèi)存地址,打印時(shí)從頭部遍歷直到結(jié)尾符結(jié)束。

不能將字符串與字符常量混淆。字符常量可以賦值給字符變量,但不能把一個(gè)字符串常量賦給一個(gè)字符變量,同時(shí)也不能對(duì)字符串常量賦值!例如:char b=‘a(chǎn)’;(正確) char b= “a”;(錯(cuò)誤)

三、變量

3.1 字節(jié)的概念

計(jì)算機(jī)中將字節(jié)(Byte)作為計(jì)量存儲(chǔ)容量和傳輸容量的一種計(jì)量單位,一個(gè)字節(jié)等于8位二進(jìn)制數(shù)。在內(nèi)存中個(gè)位的空間可以存儲(chǔ)的數(shù)值只有0和1兩種,兩個(gè)位可以存儲(chǔ)的數(shù)值可能是00、01、10和11。這四個(gè)數(shù)值分別代表的就是0、1、2、3。依此類推,如果有4個(gè)位的空間可以存儲(chǔ)的數(shù)字就是:0-15(0x0到0xF)。

由此可見(jiàn),內(nèi)存空間上N個(gè)位可以存儲(chǔ)的數(shù)值就是2的N次方個(gè)。

一個(gè)字節(jié)代表8個(gè)位的內(nèi)存空間,可以存儲(chǔ)的數(shù)值就是2的8次方個(gè),即0到255之間的數(shù)值,十六進(jìn)制表達(dá)是0x00到0xFF之間的數(shù)值

3.2 變量的分類

C語(yǔ)言變量,是指一段用于存取數(shù)據(jù)的內(nèi)存空間。

根據(jù)當(dāng)個(gè)變量的空間長(zhǎng)短可分為:

字符型變量(1個(gè)字節(jié)):char類型、unsigned char類型;

短型變量(2個(gè)字節(jié)):short類型、unsigned short類型;

長(zhǎng)型變量(4個(gè)字節(jié)):int、unsigned int(或long、unsigned long)或float類型以及指針變量等。

超長(zhǎng)型變量( 8個(gè)字節(jié)):double類型、__int64等。

根據(jù)類型可以分為:

整數(shù)型變量:包括char、 unsigned char、short、 unsigned short、int、 unsigned int(或long、unsigned long )以及 __int64等。

浮點(diǎn)數(shù)型變量:float類型(單精度)、double類型(雙精度);

其他變量類型還有:指針變量:數(shù)組變量以及結(jié)構(gòu)體對(duì)象等;

3.3 變量的存儲(chǔ)范圍

從上表看出4個(gè)位表達(dá)的剛好是十六進(jìn)制數(shù)字的個(gè)位數(shù),如果再加4個(gè)位8位剛好表達(dá)的就是十六進(jìn)制的兩位數(shù)。因此計(jì)算機(jī)以8個(gè)位代表一個(gè)字節(jié),表達(dá)的數(shù)字是(0-255)0x00到0xFF之間的數(shù)字總共256個(gè),就像十進(jìn)制中的兩位數(shù)是0到99總共100個(gè)那樣。

3.3.1 單字節(jié)變量(8位)

單字節(jié)變量(8位): unsigned char和char

unsigned char:無(wú)符號(hào)單字節(jié)變量,存儲(chǔ)范圍是0-255(0xFF)。

char:有符號(hào)單字節(jié)變量,存儲(chǔ)范圍是-128到0到127之間的數(shù)。

為了讓char類型存儲(chǔ)的256種數(shù)字中,一半是正數(shù)一半是負(fù)數(shù),計(jì)算機(jī)將char類型變量中的最高位作為符號(hào)位。最高位為0的是正數(shù),最高位為1是負(fù)數(shù)。

在負(fù)數(shù)區(qū)間,將unsigned char的數(shù)值減去256就是char類型。

3.3.2 雙字節(jié)變量(16位)unsigned short和short

unsigned short:無(wú)符號(hào)雙字節(jié)變量,存儲(chǔ)的范圍是0-65535(0xFFFF) 總共65536個(gè),就像十進(jìn)制中的4位數(shù)是0到9999總共10000個(gè)那樣

short :有符號(hào)雙字節(jié)變量,存儲(chǔ)范圍是-32768到0到32767。

為了讓short類型存儲(chǔ)的65536種數(shù)字中,一半是正數(shù)一半是負(fù)數(shù),計(jì)算機(jī)將short類型變量中的最高位作為符號(hào)位。最高位為0的代表正數(shù),最高位為1代表負(fù)數(shù)。

在負(fù)數(shù)區(qū)間,將unsigned short的數(shù)值減去65536就是short類型的數(shù)值。

3.3.3 四字節(jié)變量(32位): unsigned int和int(或unsigned long和long)

unsigned int:無(wú)符號(hào)四字節(jié)變量,存儲(chǔ)的范圍是0-4294967295(0xFFFFFFFF) 總共4294967296個(gè),就像十進(jìn)制中的8位數(shù)是0到99999999總共100000000個(gè)那樣

int:有符號(hào)四字節(jié)變量,存儲(chǔ)范圍是-2147483648到0到2147483647。

在計(jì)算機(jī)中:1K=1024,1M=1024K,1G=1024M。

65536剛好被1024整除等于64,因此65536也稱為64K,32768稱為32K; 4294967296剛好被3個(gè)1024整除,因此也稱為4G,2147483648稱為2G。

為了讓int類型存儲(chǔ)的4G種數(shù)字中,一半是正數(shù)一半是負(fù)數(shù),計(jì)算機(jī)將int類型變量中的最高位作為符號(hào)位。最高位為0的代表正數(shù),最高位為1代表負(fù)數(shù)。

在負(fù)數(shù)區(qū)間,將unsigned int的數(shù)值減去4G就是int類型的數(shù)值。

3.3.4 其他類型變量

指針變量:在32位操作系統(tǒng)中也是32位的,存儲(chǔ)范圍是0-0xFFFFFFFF之間。

浮點(diǎn)數(shù)類型:浮點(diǎn)數(shù)變量的存儲(chǔ)結(jié)構(gòu)與整型變量的存儲(chǔ)結(jié)構(gòu)完全不同。

float類型小數(shù)部分最多可以精確到6到7位,整數(shù)位數(shù)增長(zhǎng)會(huì)占用小數(shù)部分。

double 類型的小數(shù)部分至少要能精確到小數(shù)點(diǎn)后 10 位以上,整數(shù)位數(shù)增長(zhǎng)會(huì)影響到小數(shù)部分的精確度。

總結(jié)

以上是生活随笔為你收集整理的c语言变量加常量,C语言(二)---常量与变量(示例代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。