日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c 语言中unsigned char类型变量占用内存大小,C数据类型

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 语言中unsigned char类型变量占用内存大小,C数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C的32個關鍵字數據類型關鍵字(12)char,short,int,long,

float,double,unsigned,signed,

struct,union,enum,void

控制語句關鍵字(12)if,else,switch,case,

default,for,do,while,

break,continue,goto,return

存儲類關鍵字(5)auto,extern,register,static,const

其他關鍵字(3)sizeof,typedf,volatile

常量(在進程運行過程中,其值不能被改變的量)1

2

3

4

5

6

7

8

9int (void)

{

const short a=10;

printf("hello world,%dn",a);

return 0;

}#define 宏名 宏值(沒有;即結束標記)(推薦使用宏定義方式定義常量)

匿名常量 “hello”、’A’、9、1.23

const 類型 變量名=變量值。

標識符命名規則(變量和常量的統稱)標識符不能是關鍵字。如 system、main、printf

只能由數字、字母、下劃線組成 0-9/a-z/A-Z/_

不能以數字開頭

大小寫嚴格區分

變量(在使用前必須先定義,定義前必須有相應的數據類型)變量三要素:變量類型、變量名、變量值

可以通過其名字和地址訪問相應的內存

變量聲明和變量定義的區別:變量定義:給變量在內存中開辟存儲空間

變量聲明:不會給變量開辟存儲空間。向系統注冊該變量。

注意:編譯器在編譯至變量賦值處,發現該變量尚未被定義,會自動尋找變量聲明,將該聲明提升成定義(隱式聲明),如果聲名前有 extern 關鍵字,則提升失敗。

eg:1

2

3

4

5

6

7

8

9#include

int (void)

{

extern int a;

a=10; /*err,沒有空間,不可賦值*/

int b=10; /*定義一個變量值b,b的類型為int,值為10*/

return 0;

}

進制轉換(8421碼)

二進制(2^0~2^10)

計算機內部只采用二進制形式進行數據存儲。

十進制轉換二進制:除基逆取余(除二逆取余)

二進制轉換十進制:按權展開再相加

8進制和16進制:以符號位為0表示八進制 最大數值為7 0~7 %o格式符打印

以符號位為0x表示16進制 最大數值為F 0~9 ABCDEF %x、%X格式符打印(大小寫)8進制轉2進制: 04735—–421碼 —–100 111 011 101

2進制轉8進制: 010 100 101 110 101 001 —–024565116轉2:0xFAC12 —-8421碼 —-1111 1010 1100 0001 0010

2轉16:0001 0100 1011 1010 1001 ———0x14BA91

2

3

4

5

6

7

8

9

10

11#include

int main(void)

{

int t = 123; /*十進制方式賦值*/

int a = 076; /*定義一個8進制數*/

int b = 0x7a; /*定義一個16進制數*/

printf("十進制:%dn",t);

printf("八進制:%on",a);

printf("十六進制:%xn",b);

return 0;

}

編碼(原反補碼)在計算機系統中,數值一律用補碼來存儲,主要原因是:統一了零的編碼

將符號位和其他位統一處理

將減法運算轉變為加法運算

兩個用補碼表示的數相加是,如果最高位(符號位)有進位,則進位被舍棄char ch=10;10+(-10)78+(-34)10 原碼: 0000 101078 補碼: 0100 1110

-10原碼: 1000 1010-34原碼: 1010 0010

10 反碼: 0000 1010-34反碼: 1101 1101

-10反碼: 1111 0110-34補碼: 1101 1110

10 補碼: 0000 1010

-10補碼: 1111 0110

10 + (-10)78+(-34)

0000 1010 + 1111 0110 = 0000 00000100 1110 + 1101 1110=0010 1100

整型:int數據類型名稱打印格式含義大小示數范圍int整型變量%d十進制整型4字節-2^31~+2^31-1(-2147483648~+2147483647)

short:短整型變量%hd十進制短整型2字節-2^15~+2^15-1

long長整形%ld十進制長整型4字節不同平臺不同系統中大小不同 4/8

long long長長整型%lld十進制長長整型8字節

無符號整型數據類型打印格式含義大小示數范圍unsigend int%u十進制無符號整型4字節0~2^32-1 (0~4294967295)

unsigend short%hu十進制無符號短整型2字節0~2^16-1

unsigend long%lu十進制無符號長整型4字節不同平臺不同系統中大小不同

unsigend long long%llu十進制無符號長長整型8字節

整型變量的定義和輸出打印格式含義%d輸出一個有符號的10進制int類型

%o(字母o)輸出8進制int類型

%x輸出16進制int類型,字母以小寫輸出

%X輸出16進制int類型,字母以大寫輸出

%u輸出一個10進制無符號數

sizeof 關鍵字sizeof(變量名) ————返回該變量的大小,單位:整數字節

sizeof(類型名) ————返回該數據類型的大小,單位:整數字節sizeof在系統內定義為:typedef unsigned int size_t 所以用%u匹配打印

sizeof是C語言的內置運算符

sizeof不是函數,它的功能是計算一個數據類型的大小,單位是字節

sizeof的返回值為 size_t

size_t類型在32位操作系統下是unsigned int(無符號整數)1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24#include

int main(void)

{

int a = 10;

short b = 20;

long c = 30;

long long d = 40;

printf("a=%dn",a); /* %d匹配int型數據 */

printf("b=%hdn",b); /* %h匹配short型數據 */

printf("c=%ldn",c); /* %ld匹配long型數據 */

printf("d=%lldn",d); /* %lld匹配long long型數據 */

size_t abc=10; /* size_t類型在32位操作系統下是unsigned int(無符號整數)*/

printf("abc=%un",abc); /* 此處及以下均以無符號整型%u輸出*/

printf("int 型數據類型占用內存的大小 = %u字節n",sizeof(int));

printf("short 型數據類型占用內存的大小 = %u字節n",sizeof(short));

printf("long 型數據類型占用內存的大小 = %u字節n",sizeof(long));

printf("long long 型數據類型占用內存的大小 = %u字節n",sizeof(long long));

return 0;

}

字符型:char(本質就是一個字節大小的整型)一個字節(8 bit)%c 打印 有符號示數范圍:-128~127(-2^7~+2^7-1) 無符號示數范圍:0~255(0~2^8-1)

‘0’ : ASCII 值—–48

‘a’ : ASCII 值—–97

‘A’ : ASCII 值—–65

‘ ’: ASCII 值—–0 #define NULL ((void *)0)泛型指針

‘n’: ASCII 值—–10

‘t’: 按8字符做對齊輸出。不足8字符用空格補齊

注意:用單引號引起來的’a’表示字符常量a,雙引號引起來的”a”表示字符串常量。不允許

‘abc’ 這種寫法

有符號數和無符號輸的區別:有符號數最高為符號位,0表示正數,1表示負數

轉義序列(用于打印無法打印的ASCII字符)轉義序列含義ASCII碼值(十進制)a警報007

b退格008

f換頁012

n換行010

r回車013

t水平制表符009

v垂直制表符011

反斜杠()092

’單引號039

”雙引號034

?問號063

總結

以上是生活随笔為你收集整理的c 语言中unsigned char类型变量占用内存大小,C数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。