1. 程式人生 > 其它 >Numpy陣列變形和軸變換

Numpy陣列變形和軸變換

1 JAVA基本資料型別

基本資料型別:

  • 數值型:整數型別(byte,short,int,long)、浮點型別(float,double)
  • 字元型(char)
  • 布林型(boolean)

1.1 數值型別

1.1.1 整數型別 byte,short,int,long

  1. 整數型別預設值為int
  2. byte:佔1位元組=8個記憶體位,取值範圍-128~127
  3. short:佔2位元組=16個記憶體位,取值範圍約為-32***~32***"(寫全我也記不住,所以就記3萬2千多就好了)
  4. int:佔4位元組=32個記憶體位,取值範圍約為-21億~21億
  5. long:佔8個位元組=64個記憶體位,取值範圍為-2的64次冪~2的64次冪
  6. 把超過int型別長度的整數賦值給long,需要再數字末尾加上大寫的L(推薦)或小寫的l,如果整數未超int範圍,則可以不加L
byte b = 127;
byte b = 128;// 超範圍,報錯
short s = 32000;
short s = 40000; // 超範圍,報錯
int i = 1234567890;
int i = 12345678901; // 超範圍,報錯
long l1 = 12345678910L;
long l2 = 1234567891L;
long l3 = 1234567891;
System.out.println(l1);// 12345678910
System.out.println(l2);//
1234567891 System.out.println(l3);// 1234567891

拓展:整型不同進位制的賦值

int n1 = 10;// 十進位制
int n2 = 010;// 八進位制,以0開頭
int n3 = 0x10;// 十六進位制,以0x開頭
int n4 = 0b10;// 二進位制,以0b開頭
int n1 = 10;// 十進位制
int n2 = 010;// 八進位制
int n3 = 0x10;// 十六進位制
int n4 = 0b10;// 二進位制
System.out.println("十進位制 10 :");
System.out.print(n1);//10
System.out.println("八進位制 010 :");
System.out.print(n2);
//8 System.out.println("十六進位制 0x10 :"); System.out.print(n3);//16 System.out.println("二進位制 0b10 :"); System.out.print(n4);//2

1.1.2 浮點型別float,double

  1. 浮點型別預設值是double
  2. 浮點型別有float和double兩種,float佔4位元組,double佔8位元組
  3. float型別需要在末尾追加F或f,double型別因浮點預設型別是double,可以追加D或d,也可以不加
  4. float型別有效數字只有6~7位,有效數字超多7位的float會精度丟失
  5. double型別有效數字只有15~16位
  6. PS:有效數字是指從左往右第一個不是0的數字開始到末尾的所有數字。例如:0.001023,有效數字為4位
float f1 = 3.1415926F;
System.out.println("3.1415926F≈"+f1);// 3.1415926F≈3.1415925 丟失精度
float f2 = 3.14159F;
System.out.println("3.14159F="+f2);// 3.14159F=3.14159
double d1 = 3.1415926;
System.out.println("3.1415926="+d1);// 3.1415926=3.1415926
double d2 = 3.14159265358979323846264338327950288D;
System.out.println("3.14159265358979323846264338327950288D≈"+d2);// 3.14159265358979323846264338327950288D≈3.141592653589793 丟失精度

1.2字元型別char

  1. 字元型別char,單引號內的單個字元
  2. char型別只能儲存一個字元,不能多也不能少,包括空格字元
  3. 不能儲存空字元
  4. 不能儲存多個空格
  5. char型別輸出的時候只展示字面常量,但是實際儲存是儲存的該字面常量對應的unicode數字
  6. char型別可以以其對應的編碼數字直接用+號和數字字面常量進行計算,也可以直接和數字型別相互轉換
char c1 = 'a';
System.out.println(c1);
char c2 = 'A';
System.out.println(c2);
char c3 = '1';
System.out.println(c3);
char c4 = '?';
System.out.println(c4);
char c5 = ''; // 會報錯,不能儲存空字元
char c6 = '  ';// 會報錯,不能儲存多個空格
char c7 = '\n';// 轉義符
System.out.println("aaa"+c7+"bbb");
System.out.println("換行轉義符:換行");
System.out.println("aaa\nbbb");
System.out.println("製表符:自動對齊8個字元的整數倍");
System.out.println("aaa\tbbb");
System.out.println("退格符:回退一格開始列印");
System.out.println("aaa\bbbb");
System.out.println("單引號和雙引號:");
System.out.println("aaa\'bbb\"");
System.out.println("轉義反斜槓\\");
System.out.println("aaa\\bbb");
System.out.println("char型別輸出的時候只展示字面常量,但是實際儲存是儲存的該字面常量對應的unicode數字:");
char c8 = 'a';
System.out.println(c8);// a
System.out.println("char型別可以以其對應的編碼數字直接用+號和數字字面常量進行計算:");
System.out.println(c8+1);// 98
System.out.println("也可以直接和數字型別相互轉換:");
int i1 = (int) c8;
System.out.println("int i1 = (int) c8 輸出i1為:"+i1);// int i1 = (int) c8 輸出i1為:97
char c9 = (char) 65;
System.out.println("char c9 = (char) 65 輸出c9為:"+c9);// char c9 = (char) 65 輸出c9為:A
System.out.println("面試題:");
System.out.println("\'2\'+2=?");
int v1 = '2'+2;
System.out.println(v1);// 52
char v2 = '2'+2;
System.out.println(v2);// 4
//'2'對應的accii值為50,50+2=52,52對應的字元為4

1.3布林型別boolean

  1. 布林型別只有兩個值,true和false
  2. 不支援大寫的TRUE和FALSE
boolean b1 = true;
//boolean b2 = TRUE; // 報錯
boolean b3 = false;
System.out.println(b1);// true
System.out.println(b3);// false