整數(shù)類型有以下幾種:short [int]、unsigned short [int]、int、unsigned [int] ([]內(nèi)可省略)
這四種整數(shù)類型的特征有兩種:位數(shù)長短和有無符號。
轉(zhuǎn)換大體可以分為位擴展和位截取,我們主要說的是位擴展。
一、位擴展
而在實際編程中遇到的類型轉(zhuǎn)換有三種:
1、有無符號的轉(zhuǎn)換(位數(shù)相同)
位級表示不變,只是解釋方法發(fā)生了變化。
2、位數(shù)的擴展(符號類型相同)
有符號數(shù)擴展時填充的是符號位,無符號數(shù)擴展時填充的是零。
3、符號的轉(zhuǎn)換和位數(shù)的擴展二者都有
當二者同時存在時,位數(shù)擴展的優(yōu)先級高于符號的轉(zhuǎn)換。所以先進行位擴展(有符號數(shù)擴展符號位,無符號數(shù)擴展零),然后進行符號轉(zhuǎn)換。
例:
short sx = -12345; //-12345
unsigned short usx = sx; // 53191
int x = sx; //-12345
unsigned int ux = sx; //4294954951
二、位截取
位截取直接將原數(shù)據(jù)截取相應(yīng)的字長,然后按照相應(yīng)的方法進行