天天看點

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

一.資料類型

1.C語言的32個關鍵字

2.常量和變量

(1)const  定義常量 隻讀

#include <stdio.h>

void main() 
{
	const int price = 3;
	//price = 5;  const 設定為隻讀 相當于定義為常量
	printf("%d\n", price);
}
           

(2)宏定義常量

#define PI 3.14
           

(3)auto 變量

修飾變量 auto可加可不加  一般不加

auto float x=1;
           

(4)辨別符

        ①字母 下劃線 數字,但不能用數字開頭

        ②不能使用關鍵字命名

        ③辨別符嚴格差別大小寫

        ④見名知意

二.整型

1.signed 有符号的(預設)  unsigned 無符号的

signed int a=10;
           

signed 預設可以不寫  

unsigned  int a=10;
printf("%u",a);
           

unsigned 需要用占位符%u來使用  當 a為負數時,輸出的結果會出現亂碼

2.進制

定義八進制資料 以0開頭

int a = 0123
           

定義16進制 以0x開頭

int a = 0x123
           

在計算機定義資料時 ,不能直接定義二進制

3.整形的輸入

  & 取位址符  

void main()
{
	int a;
	scanf("%d", &a);
	printf("%d", a);
}
           

4.整形大小和取值範圍

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

 5.sizeof 計算資料類型在記憶體中占用的位元組(byte)大小

1-位元組位元組位元組_Xuersry的部落格-CSDN部落格

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

https://blog.csdn.net/Xuersry/article/details/120011605?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163167799016780261921630%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163167799016780261921630&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-120011605.first_rank_v2_pc_rank_v29&utm_term=1%E5%AD%97%E8%8A%82&spm=1018.2226.3001.4187

三.字元型

1.字元變量的定義和輸出

char ch = 'a';
printf("%c",ch);
printf("%d",sizeof(ch));
           

 字元資料占用記憶體為1個位元組

2.ASCII 碼值

0-9  對應的為 48 -57

A-Z 對應的為  65-

a-z對應的為  97-122

四.轉義字元

常用的轉義字元表格_NightChenRight的部落格-CSDN部落格

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

https://blog.csdn.net/NightChenRight/article/details/80866365?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163170080416780261984996%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163170080416780261984996&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-80866365.first_rank_v2_pc_rank_v29&utm_term=%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6%E8%A1%A8%E6%A0%BC&spm=1018.2226.3001.4187

五.實型(浮點型)

1.單精度浮點型,雙精度浮點型

預設編寫代碼時,小數的double類型

int a = 10;
float b = 3.14f;
printf("%p",&a);
printf("%p",&b);
           

占位符 %p 表示輸出記憶體所在的位址(無符号的十六進制整形資料)

2.科學指派法

        3.14e2=3.14*

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

   相反負數則乘以0.1的n次方

int a = 3.14e2; //3.14*10*10

printf("%e",a);
           

五.進制轉換

1.正常方法

(1)10進制和2進制的轉換

       ① 除二反序取餘法 :短除法除以2,餘數反序書寫則為2進制的結果

       ② 權值法

        1010(2)轉化為10進制 

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

=10

(2)10進制和8進制的轉換 

        ①除八反序取餘法

(3)10進制和16進制的轉換

        ①除十六反序取餘法

(4)2進制和8進制的轉換

2.規律

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

 (1)8421法

        ①10進制和2進制的轉換

        1:1   2:10  4:100  8:1000  16:10000.......

        ②8進制和2進制的轉換

        三位一體的轉化

        ③16進制和2進制的轉換

        四位一體的轉化

        ④8進制和16進制的轉換

        可先轉2進制,再互相之間轉換

六.進制術語和小數存儲方式

1.浮點型的小數

浮點型的小數是不準确的,隻能無限趨近于

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

 七.計算機記憶體數值存儲方式

1.原碼

char c1=10;

原碼:0000 1010

反碼:0000 1010

補碼:0000 1010

char c2=-10;

原碼:1000 1010

反碼:1111 0101

補碼:1111 0110

2.反碼

0為正數,1為負數;正數時,反碼和原碼相同;負數時,反碼除符号位不變,其餘1和0相反;

3.補碼

   ①正數時,原碼,反碼,補碼都相同;負數時,補碼為反碼+1;

   ②在計算機系統中,數值一律用補碼來儲存,主要原因有:

        ● 統一了零的編碼(在計算機内統一為+0)

        ● 将符号位和其他位統一處理

        ● 将減法運算轉化為加法運算

        ● 兩個用補碼表示的數相加時,如果最高位(符号位)有進位,則進位被舍棄

例如:72-68 = 72+(-68)

72

原碼:0010 1000

反碼:0010 1000

補碼:0010 1000

-68

原碼:1010 0100

反碼:1101 1011

補碼:1101 1100

72+(-68)

補碼:0010 1000

補碼:1101 1100

補碼:1 0000 0100  符号位有進位,則進位的舍棄

反碼:0000 0100

原碼:0000 0100   結果為4

72-78 = 72+(-78)

72

原碼:0010 1000

反碼:0010 1000

補碼:0010 1000

-78

原碼:1010 1110

反碼:1101 0001

補碼:1101 0010

72+(-78)

補碼:0010 1000

補碼:1101 0010

補碼:1111 1010

反碼:1111 1001

原碼:1000 0110  結果是-6

4.有符号和無符号的取值範圍

(1)有符号的數值取值範圍  signed

        8bit資料的取值的範圍  [-128,127]    [-

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

【C語言基礎_Day02】資料類型、進制轉化一.資料類型二.整型三.字元型四.轉義字元五.實型(浮點型)五.進制轉換六.進制術語和小數存儲方式 七.計算機記憶體數值存儲方式

-1]

(2)無符号的數值取值範圍 unsigned

        8bit [0,255]

        無符号的最高位不是符号位

5.資料溢出

當資料溢出會造成符号相反或者資料丢失

繼續閱讀