java數(shù)據(jù)類(lèi)型的轉(zhuǎn)換 C語(yǔ)言的數(shù)據(jù)類(lèi)型分為幾種?
C語(yǔ)言的數(shù)據(jù)類(lèi)型分為幾種?您好!short、int、long、char、float、double 這六個(gè)關(guān)鍵字代表C 語(yǔ)言里的六種基本數(shù)據(jù)類(lèi)型。在不同的系統(tǒng)上,這些類(lèi)型占據(jù)的字節(jié)長(zhǎng)度是不同的:在32
C語(yǔ)言的數(shù)據(jù)類(lèi)型分為幾種?
您好!
short、int、long、char、float、double 這六個(gè)關(guān)鍵字代表C 語(yǔ)言里的六種基本數(shù)據(jù)類(lèi)型。
在不同的系統(tǒng)上,這些類(lèi)型占據(jù)的字節(jié)長(zhǎng)度是不同的:
在32 位的系統(tǒng)上
short 占據(jù)的內(nèi)存大小是2 個(gè)byte;
int占據(jù)的內(nèi)存大小是4 個(gè)byte;
long占據(jù)的內(nèi)存大小是4 個(gè)byte;
float占據(jù)的內(nèi)存大小是4 個(gè)byte;
double占據(jù)的內(nèi)存大小是8 個(gè)byte;
char占據(jù)的內(nèi)存大小是1個(gè)byte。
具體可以用sizeof測(cè)試一下即可。
在C語(yǔ)言中不同的數(shù)據(jù)類(lèi)型之間是如何轉(zhuǎn)換的,不同的數(shù)據(jù)類(lèi)型是怎樣計(jì)算的?
在C語(yǔ)言中,不同數(shù)據(jù)類(lèi)型在進(jìn)行運(yùn)算時(shí)首先要轉(zhuǎn)換成同一類(lèi)型,一種是自動(dòng)轉(zhuǎn)換,二是強(qiáng)制轉(zhuǎn)換,如(int)a 將a強(qiáng)制轉(zhuǎn)換為int型 轉(zhuǎn)換原則:箭頭是轉(zhuǎn)換方向 char,short->int->unsigned->long,float->double 說(shuō)這個(gè)題之前要接受一個(gè)事實(shí):不同計(jì)算機(jī)上運(yùn)行此程序結(jié)果會(huì)不一樣,原因和你是好多位計(jì)算機(jī)有關(guān)系,在很多書(shū)上int占兩個(gè)字節(jié),而在有些計(jì)算機(jī)卻占4個(gè)字節(jié),具體是好多你可以用sizeof(int)測(cè)試一下,那我的計(jì)算機(jī)就占4個(gè)字節(jié),現(xiàn)在再看題:c=x a x為長(zhǎng)整型a為整型,運(yùn)算之前先將a自動(dòng)轉(zhuǎn)換為長(zhǎng)整型,x=-5,計(jì)算機(jī)存儲(chǔ)為0FFFFFFFBh,a=3,x a=0FFFFFFFEh 輸出格式是%u 也就是以十進(jìn)制無(wú)符號(hào)形式輸出,結(jié)果為4294967294而不是65534。
d=y b,a=3就不用多說(shuō)明了,最后用%f輸出單精度或雙精度浮點(diǎn)數(shù),其默認(rèn)為6位小數(shù),要想控制顯示位數(shù)用%m.nf,具體看看書(shū)哈
進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換可能會(huì)造成數(shù)據(jù)信息的丟失。如,長(zhǎng)整型的數(shù)據(jù)轉(zhuǎn)換為float型,誰(shuí)能具體舉個(gè)例子↓?
整數(shù)類(lèi)型向浮點(diǎn)型轉(zhuǎn)型類(lèi)型選擇不當(dāng)會(huì)出現(xiàn)精度損失。
當(dāng)一個(gè)長(zhǎng)整型數(shù)轉(zhuǎn)換為單精度浮點(diǎn)型時(shí)會(huì)出現(xiàn)精度損失。
當(dāng)一個(gè)長(zhǎng)整型數(shù)轉(zhuǎn)換為雙精度浮點(diǎn)型時(shí)不會(huì)出現(xiàn)精度損失。
是否需要強(qiáng)制轉(zhuǎn)換是依據(jù)不同編程語(yǔ)言有不同的。
強(qiáng)制類(lèi)型轉(zhuǎn)換,當(dāng)操作數(shù)的類(lèi)型不同,而且不屬于基本數(shù)據(jù)類(lèi)型時(shí),經(jīng)常需要將操作數(shù)轉(zhuǎn)化為所需要的類(lèi)型,這個(gè)過(guò)程即為強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制類(lèi)型轉(zhuǎn)換具有兩種形式:顯式強(qiáng)制轉(zhuǎn)換和隱式強(qiáng)制類(lèi)型轉(zhuǎn)換。
在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類(lèi)型不同時(shí),賦值號(hào)右邊量的類(lèi)型將轉(zhuǎn)換為左邊量的類(lèi)型。如果右邊量的數(shù)據(jù)類(lèi)型長(zhǎng)度比左邊長(zhǎng)時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分直接舍去。
c語(yǔ)言中,請(qǐng)問(wèn)字符9可以與整數(shù)9直接相乘嗎?
很高興來(lái)回答這個(gè)問(wèn)題。
先說(shuō)結(jié)論:c語(yǔ)言中,字符9是可以與整數(shù)9直接相乘的,得到的結(jié)果是513.
1 為什么字符9可以與整數(shù)9相乘?
首先我們要明白字符在內(nèi)存當(dāng)中是以什么樣的形式存儲(chǔ)的。在計(jì)算機(jī)當(dāng)中,字符都是以它對(duì)應(yīng)的ASCII碼表示(美國(guó)信息交換標(biāo)準(zhǔn)代碼),而ASCII碼不管用什么進(jìn)制表示,它最終表示的是一個(gè)整數(shù)。如‘9’,它的ASCII碼值用十進(jìn)制表示為57。所以,看上去是字符9在做相乘,實(shí)質(zhì)上是用它的ASCII碼值在做相乘。
2 字符9與整數(shù)9是如何相乘的?
表達(dá)式:‘9’*9,在C語(yǔ)言中如何運(yùn)算的呢。
乘運(yùn)算符是雙目遠(yuǎn)算符,也就是要求有兩個(gè)操作數(shù),如上圖如示,操作數(shù)1和操作數(shù)2。在計(jì)算前,要求兩個(gè)操作數(shù)的類(lèi)型要保持一致,而現(xiàn)在操作數(shù)1是字符型,而操作數(shù)2是整型(默認(rèn)為int型),兩個(gè)操作數(shù)類(lèi)型并不一致,所以需要進(jìn)行類(lèi)型轉(zhuǎn)換。
在C語(yǔ)言當(dāng)中,數(shù)據(jù)類(lèi)型轉(zhuǎn)換有兩種:其一,自動(dòng)類(lèi)型轉(zhuǎn)換;其二,強(qiáng)制類(lèi)型轉(zhuǎn)換。在這里在,它會(huì)使用自動(dòng)類(lèi)型轉(zhuǎn)換,可以理解為是C系統(tǒng)當(dāng)中自動(dòng)完成的,不需要程序員參與的。根據(jù)自動(dòng)類(lèi)型的轉(zhuǎn)換原則,字符型會(huì)自動(dòng)轉(zhuǎn)為int型,而‘9’轉(zhuǎn)換為int型,就是取它的ASCII碼值:57。
完成轉(zhuǎn)換以后,就用57*9,答案自然是513。
以上,就是進(jìn)階君對(duì)于這個(gè)問(wèn)題的回答。