C基礎——常量變數筆記

來源:互聯網
上載者:User

標籤:

程式編譯連結原理
預先處理:.c -> .i
gcc -E hello.c -o hello.i

編譯:.i / .c -> .s
gcc -S hello.i -o hello.s

彙編:.s -> .o
gcc -c hello.s -o hello.o

連結:.o -> 可執行程式app
gcc hello.o -o app

gedit hello.c

小端儲存法——高地址存高位元組,低地址存低位元組(高存高,低存低)
(intel/ARM)
0x表示十六進位

數值:0x12 34 56 78在小端儲存空間裡如何儲存

0x80030x12
0x80020x34
0x80010x56
0x8000 0x78

1 BYTE = 8bit

大端儲存法——高地址存低位元組,低地址存高位元組(高存低,低存高)
(IBM大型主機/網路位元組序)
數值:0x12 34 56 78在小端儲存空間裡如何儲存

0x80030x78
0x80020x56
0x80010x34
0x8000 0x12

進位轉換
10進位: 0,1,2,3,4,5,6,7,8,9,10
2進位: 0,1
8進位:0,1,2,3,4,5,6,7
16進位:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

百 十 個
1 2 3

1x10^2 + 2x10^1 + 3x10^0

0 1 0
0x2^2 + 1x2^1 + 0x2^0 = 2

1100 1010
0+2+0+8+64+128=202

二進位: 000 001 010 011 100 101 110 111 001000
十進位: 01 2 3 4 5 6 7 8
八進位: 01 2 3 4 5 6 7 10


二進位: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
十進位: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六進位: 0 1 2 3 4 5 6 7 8 9 A B C D E F


二進位:1010 0001 1000
十六進位:A 1 8

十六進位:3D7
二進位: 0011 1101 0111

八進位:11
二進位:001 001

37
八進位開頭:0
十六進位開頭:0x
十進位開頭:什麼都不跟


八進位:0777
十六進位:0xffff8000

5進位:23 = 3x5^0 + 2x5^1 = 13

8 4 2 1

2^3 2^2 2^1 2^0


1000 0100 0010 0001

0111

十進位:89 對應的二進位 1011001
89 .... 1
44 .... 0
22 .... 0
11 .... 1
5 .... 1
2 .... 0
1 .... 1


1011001
1+0+0+8+16+0+64 = 89

49 ... 1
24 ... 0
12 ... 0
6 ... 0
3 ... 1
1 ... 1

0011 0001
0x31


0567
101 110 111

bit位

8bit = 1BYTE =》每個位元組擁有一個地址

0x8003
0x8002
0x8001
0x8000


1 和 -1

原碼反碼補碼

10000 00010000 00010000 0001正數的反碼,補碼都等於原碼
-11000 00011111 11101111 1111負數的補碼等於把反碼加1

00000 00000000 00000000 0000
-01000 00001111 11110000 0000

如果(0 等於 -0)
執行aaaa;
否則
執行bbbb;

 

97 =》 97 ... 1 => 0110 0001
48 ... 0
24 ... 0
12 .... 0
6 ... 0
3 ... 1
1 ... 1
原碼 反碼 補碼
-31 => => 31 => 31 ... 1 => 0001 1111 => 1001 1111 => 1110 0000 => 1110 0001
15 ... 1
7 ... 1
3 ... 1
1 ... 1


char b = 1; => (-128~127)
unsigned char a = 129; => (0~255)
s
0000 0000
1000 0001
1111 1111
int
unsigned int -> (0~2^32-1)


char b = ‘x‘;
int c = 10;

‘x‘ => 120 => 0111 1000
10 => 1010
.
.
.
0x8003
0x8002
0x8001
&b => 0x8000 1BYTE 0111 1000
.
.
.
0x70030000 0000=>0x00
0x70020000 0000=>0x00
0x70010000 0000=>0x00
&c =>0x7000 0000 1010=>0x0A
printf("&c = %p\tc = %d", &c, c);

‘x‘ => 120
‘\a‘
‘"‘
345

"hello" => ‘h‘ ‘e‘ ‘l‘ ‘l‘ ‘o‘ ‘\0‘


‘a‘ == "a"
"a" = "c";

"123" => 123

‘1‘ ‘2‘ ‘3‘ ‘\0‘

‘1‘ - ‘0‘ = 1
1*10 + ‘2‘-‘0‘ = 12
12*10 + ‘3‘-‘0‘ = 123


int a = 5;
a % 3 => 2
a / 2 => 2

float a = 5.0
a % 3 => ???報錯
a / 2 => 2.5

1.列印基礎資料型別 (Elementary Data Type)sizeof大小
2.利用vs2013學會查看記憶體, 查看變數地址和地址裡的數值

C基礎——常量變數筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.