-------------------學習筆記
c語言:
基本資料型別大小/(byte)
32位系統
64位系統
char
1
1
short
2
2
int
4
8
long
4
8
float
4
4
double
8
8
各種指標型別
4
8
ps: example:
int型別
32bit
最大值: 2^31-1
最小值:-2^31-1
還有一位儲存符號
00000000 00000000 00000000 00000000
(二進位制)
紅色代表符號位
有符號符號的資料型別:
原碼:
原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值.
原碼是人腦最容易理解的表示。
反碼:
正數的反碼是其本身
負數的反碼:符號位不變,其餘各個位的值取反。
[10000001] 原碼
[11111110] 反碼
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
-1 [10000001] 原碼
[11111110] 反碼
補碼 + 1 = [11111111] 補碼
c語言規定的轉換規則是由低階向高階轉換。
例如,如果乙個操作符帶有兩個型別不同的運算元時,那麼在操作之前行先將較低的型別轉換為較高的型別,然後進行運算,運算結果是較高的類。
注意:在表示式中,所有的float型別都轉換為double型以提高運算精度。
example:
a = -3;
unsigned int b = 2;
long c = a + b;
printf("%ld", c);
相加時 因為32位系統 與64位系統 long的大小不一樣 所以情況不同
unsigned int 最大可表示2^32-1
int 最大可表示2^31-1
這樣int 就會轉換為 unsigned int, 由於y<0, 即y的最高符號位是1, 轉換為unsigned int 後最高位不在是符號位。
(int)-3 = 10000000 00000000 00000000 00000011(原碼)
11111111 11111111 11111111 11111100(反碼)
11111111 11111111 11111111 11111101(補碼)
a + b = 11111111 11111111 11111111 11111101 + 00000000 00000000 00000000 00000010
= 11111111 11111111 11111111 11111111
32位系統 long 4byte 所以a + b = -1 = 11111111 11111111 11111111 11111111 (補碼)
64位系統 long 8byte 所以 a + b= 2^32 = 4294967295
1.& 按位 與
運算:對應的兩個二進位制 均為1時 ,結構為1, 否則為0
example: 9 & 5 = 1
1001
0101
結果:0001 = 1
example: x % 8 == x & 7
2.| 按位 或
運算:對應的兩個二進位制只要有乙個為1時 ,結果為1, 否則為0
example: 9 | 5 = 13
1001
0101
結果:1101 = 13
3. ^ 按位 異或
運算:對應的兩個二進位制 不相同為 1, 否則為 0
example: 9^5 = 12
1001
0101
結果:1100 = 12
ps:相同整數 異或為 0 5^ 5 = 0
不同整數 異或 結果和順序無關
任何數和 0 異或 結果不變
4.~ 按位 取反
運算:對整數的 每一位取反 ,符號也要取反
example: ~9 = -10
00000000 00000000 00000000 00001001
取反111111111 111111111 111111111 111110110
求其原始資料
求其補碼
10000000 00000000 00000000 00001001 = -10
5. << 左移
example: x<
運算:把x的二進位制位向左移動 n個單位, 高位丟棄, 低位補0
6. >> 右移
example: x>> n = x / 2^n
運算:把x的二進位制位向右移動n個單位, 低位丟棄, 符號位不變,但是符號要跟著移動
也就是不改變正負
所謂大端就是指 高位值在記憶體中放低位位址,所謂小端是指低位值在記憶體中放低位位址。
別人家詳細的解釋
判斷機器是何種機器的小**
#include using namespace std;
union
test;
bool testbigendin()
int main()
{ if (testbigendin())
cout<<"big-endian<
C語言 基本概念
c語言的基本概念 1.格式 型別修飾符 變數名初始值.2.定義變數規則 1 不能以數字開頭.2 由下劃線,字母,美元符,數字組成.3 變數名不能重複.4 不要以拼音命名,特別是拼音簡寫.5 駝峰結構 駝峰命名法.6 不能與系統保留字重名.3.編寫 規範 操作符兩個由空格,逗號後面乙個空格.練習1 定...
C語言基本概念
bit 中文名稱是位,音譯 位元 是用以描述電腦資料量的最小單位。二進位制數系統中,每個0或 1就是乙個位 bit bit縮寫為b。位元組 byte 是計算機 資訊科技 用於計量儲存容量和傳輸容量的一種計量單位,乙個位元組等於8位 二進位制數 byte 縮寫為b 1kb 1024 bytes 102...
C 語言基本概念
類 具有同種屬性的物件稱為類,是個抽象的概念。比如說 汽車 人 狗 神 物件 日常生活中的所有東西都是物件,是類的例項化。比如說 推土車是汽車的例項化 姚明是人的例項化 小白 狗的名字 是狗的例項化 二郎神是神的例項化 屬性 用來描述具體某個物件的特徵的是屬性,是靜態的。比如 姚明身高2.6公尺多 ...