資料型別。運算子

2021-10-08 02:18:10 字數 3062 閱讀 6952

一. 變數不能重複宣告:int a=10;int a=100;錯誤

二. 8種資料型別:

1.整形:(byte、short、int、long)

byte 的取值範圍:-128~127(-2的7次方到2的7次方-1)

short 的取值範圍:-32768~32767(-2的15次方到2的15次方-1)

int 的取值範圍:-2147483648~2147483647(-2的31次方到2的31次方-1)

long 的取值範圍:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

2.浮點型(float、double)

float(單精度浮點型)取值範圍:長度為4個位元組

3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的負45次方)

double(雙精度浮點型)取值範圍:長度為8個位元組

1.797693e+308~4.9000000e-324

浮點型的資料是不能完全精確的。

小數字麵量預設都是double型別

如果要給float賦值,需要追加 f/f float f = 3.14f;

而給double賦值,加不加d/d區別不大 double d1 = 3.14d;

3.字元型(char):長度2位元組

char 有以下的初始化方式:

char ch = 『中』;

c = 『\u4e2d』; // unicode編碼 - (漢字)

char ch = 1010; // 可以是十進位制數、八進位制數、十六進製制數等等。

char ch = 『\0』; // 可以用字元編碼來初始化,如:』\0』 表示結束符,它的ascll碼是0,這句話的意思和 ch = 0 是乙個意思。

c1 = 0; // 空白字元

char c1 = 48; // ascii碼 『a』=65 『a』=97 『0』=48

4.布林型(boolean)

boolean 它的取值就兩個:true 、false 。

5.基本型別之間的轉換:

自動轉換:

將6種資料型別按下面順序排列一下:

double > float > long > int > short > byte

如果從小轉換到大,那麼可以直接轉換,而從大到小,或char 和其他6種資料型別轉換,則必須使用強制轉換。

自動轉換時

int–> float

long–> float

long–> double

float -->double without strictfp

可能出現精度損失

強制轉換:如果要把大的轉成小的,或者在short與char之間進行轉換,就必須強制轉換。

如果整數的值超出了byte所能表示的範圍,結果將對byte型別的範圍取餘數。例如a=256超出了byte的[-128,127]的範圍,所以將257除以byte的範圍(256)取餘數得到b=1;需要注意的是,當a=200時,此時除了256取餘數應該為-56,而不是200。

將浮點型別賦給整數型別的時候,會發生截尾(truncation)。也就是把小數的部分去掉,只留下整數部分。此時如果整數超出目標型別範圍,一樣將對目標型別的範圍取餘數。

double m=3.17;

int n=(int)(m);

三。運算子

運算子左右兩邊型別是統一的

int i = 5 / 2; // 整除

若double d = 5 / 2.0;其結果為2.5

b++ 與 ++b 的不同:

如果把++放到左邊,表示先把運算元加一,然後才把運算元放入表示式中運算。如果把++放到右邊,表示先把運算元運算元放入表示式中運算,然後才把運算元加一。

位運算子:

與(&):兩個二進位制運算元對應位同為1 結 果位 才為1,其餘情況為0;

或(|):兩個二進位制運算元對應位只要有乙個為1 結果位 就為1,其餘情況為0;

非(~):乙個二進位制運算元,對應位為0,結果位為1;對應位為1,結果位為0;例:整數 d = 1 計算:(~d):0000 0001變為1111 1110,這是記憶體中的儲存形式。我們讀取的十進位制是根據原碼來讀取,而在記憶體中,數值都是以二進位制補碼形式儲存的。正數的補碼和原碼一樣,負數的補碼得到過程:原碼 轉 反碼 再轉 補碼,然後計算取反後的補碼,其真值就是結果。

即結果等於: 記憶體中的儲存形式—>反碼—>補碼

正數的補碼就是其本身,負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)

異或(^): 兩個二進位制運算元對應位相同為0,不同為1;

位移位運算(<< >> >>>):

《和》:

無符號位移》:得到二進位製碼,右移後左邊最高位添0;

例:int num = -1

num>>>1:先按其絕對值大小表示出二進位制即其原碼,然後得到反碼,然後得到補碼,此時補碼即得到了-1在計算機中的二進位制表示方法。然後右移後左邊最高位添0,即最終為0111 1111 1111 1111 1111 1111 1111 1111

4.三目運算子:

表示式:

variable x = (expression) ? value if true : value if false

b = (a == 10) ? 20 : 30;

三目運算子的規則是,先對邏輯表示式expression進行求值,如果邏輯表示式返回true,則返回第二個運算元的值,如果邏輯表示式返回false,則返回第三個運算元值。

邏輯運算子:

||:若左邊為真則不會再判斷右邊的語句

關係運算子:

關係運算子用來判斷兩個變數或者常量的大小,關係運算子的結果是乙個boolean值( true或者false)。

資料型別 運算子

一.資料型別 1.整數型別 2.浮點數 定點數 m為精度 資料總長度 d為標度 小數點後長度 單精度 佔4個位元組,有效數字是7位 雙精度 佔8個位元組,有效數字是16位 在一定情況下,浮點數能表示更大的儲存範圍,但容易產生誤差。因而對精度要求較高時,選擇定點數。定點數以字串儲存。3.日期 時間 4...

資料型別和運算子 運算子

objective c 支援所有的基本算術運算子 除法運算子。除法運算子有些特殊,如果除法運算子的兩個運算元都是整數型別,則計算結果也是整數,就是將自然 數除法的結果斷取整。求餘運算子。它要求運算子兩邊的運算元必須是整數,他的計算結果是使用第乙個運算元來除以第二個運算元,得到 乙個整除的結果後,剩下...

資料型別和運算子

public static void main string args elsewhile test expression 5 for迴圈 for init statement test expression iteration statement 6 使用break結束迴圈 例如 for int ...