0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言-基本數(shù)據(jù)類型與位運(yùn)算

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:56 ? 次閱讀

一、前言

這篇文章作為基礎(chǔ)知識(shí)點(diǎn),總結(jié)C語言的基本數(shù)據(jù)類型有哪些,浮點(diǎn)數(shù)的精度,整數(shù)變量的空間范圍,變量定義語法,變量命名規(guī)則,浮點(diǎn)數(shù)打印格式,基本數(shù)據(jù)類型printf對(duì)應(yīng)的打印、位運(yùn)算的知識(shí)點(diǎn)。

二、變量的定義語法與數(shù)據(jù)類型

<數(shù)據(jù)類型> <變量名稱>;

例如: int a;

數(shù)據(jù)類型可以填哪些?
int、char、float、double、long、short 

每個(gè)數(shù)據(jù)類型有什么區(qū)別?
int 用來存放整型數(shù)據(jù)。比如: 123、456、-678
char 用來字符和整型數(shù)據(jù)。比如:123、2、5、'A'、'K'
float 用來浮點(diǎn)數(shù)類型的數(shù)據(jù)(單精度)。比如: 12.34 、12.0 、 56.789
double 用來浮點(diǎn)數(shù)類型的數(shù)據(jù)(雙精度)。
long 用來存放整型數(shù)據(jù)。
short 用來存放整型數(shù)據(jù)。

int、char、short..都可以存放整型,具體有什么區(qū)別?
每個(gè)數(shù)據(jù)類型所占用的空間大小不一樣。
int 類型 占4個(gè)字節(jié)
char類型 占1個(gè)字節(jié)
short類型占2個(gè)字節(jié)

int、char、short..都可以存放整型,具體能存放多大的數(shù)據(jù)?
因?yàn)檎麛?shù)的有負(fù)數(shù)的,所以程序里數(shù)據(jù)類型分為有符號(hào)和無符號(hào)。
無符號(hào)的關(guān)鍵字: unsigned
比如: int類型定義就有以下方式
unsigned int a; //表示不存放符號(hào)位,4個(gè)字節(jié)=32位,全部存放有效數(shù)據(jù)。 最大值: 0~4294967295
int a; //表示存放符號(hào)位,4個(gè)字節(jié)=32位,除了最高位其他位存放有效數(shù)據(jù)。 最大值: -2147483646  ~ +2147483647
unsigned char b; //存放的數(shù)據(jù)范圍: 1個(gè)字節(jié)=8位    存放范圍:0~2550x00 ~ 0xFF
char b;//存放的數(shù)據(jù)范圍: 1個(gè)字節(jié)=8位    存放范圍: -128  -  +127  

float,double ..都可以存放浮點(diǎn)數(shù),具體的區(qū)別?
float 存放單精度浮點(diǎn)數(shù).  占空間4個(gè)字節(jié)。精確到小數(shù)點(diǎn)后6位。
double 存放雙精度浮點(diǎn)數(shù). 占空間8個(gè)字節(jié)。精確到小數(shù)點(diǎn)后10位。

unsigned 關(guān)鍵字可以聲明哪些數(shù)據(jù)類型? 只能聲明整型。 unsigned char 、 unsigned int 

<變量名稱>  是如何命名的?有什么要求?
變量名的首字母必須是: 字母或者是_ (下劃線)、 首字符之后可以是數(shù)字。
命名規(guī)則: 'A'到'Z' 'a' 到 'z'  '0'到'9'  '_'
后面函數(shù)名稱、數(shù)組的名稱、結(jié)構(gòu)體......都遵循該命名規(guī)則。

變量名稱有沒有長(zhǎng)度限制? 一般限定32個(gè)字符。

示例代碼驗(yàn)證結(jié)果

#include 
int main(int argc,char *argv[])
{   
    unsigned char a=256;
    char b=128;
    printf("a=%d\n",a); //0
    printf("b=%d\n",b);//-128
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    printf("int=%d\n",sizeof(int));  //4字節(jié)
    printf("unsigned int=%d\n",sizeof(unsigned int)); //4字節(jié)
    printf("float=%d\n",sizeof(float)); //4字節(jié)
    printf("short=%d\n",sizeof(short)); //2字節(jié)
    printf("double=%d\n",sizeof(double)); //8字節(jié)
    printf("char=%d\n",sizeof(char)); //1字節(jié)
    printf("123=%d\n",sizeof(123));//4字節(jié)
    return 0;
}

三、整數(shù)、浮點(diǎn)數(shù)格式前綴和打印格式

#include 
int main(int argc,char *argv[])
{   
    int a=7;     //十進(jìn)制
    int b=0x7;   //十六進(jìn)制
    int c=07;   //8進(jìn)制
    int d=0b0111; //二進(jìn)制   gcc是支持。
    printf("%d\n",a);
    printf("%d\n",b);
    printf("%d\n",c);
    printf("%d\n",d);
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    unsigned int a=100;
    int b=200;
    float c=12.34;
    double d=456.789;
    long f=456;

    printf("%u\n",a);
    printf("%d\n",b);
    printf("%.2f\n",c);
    printf("%.3f\n",d);
    printf("%ld\n",f);
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    printf("%10d\n",123);  //左補(bǔ)齊空格
    printf("%-10d,%d\n",123,456);  //右邊補(bǔ)齊空格
    return 0;
}
#include 
int main(int argc,char *argv[])
{   
    printf("%#x\n",255);  //16進(jìn)制
    printf("%#d\n",255);  //10進(jìn)制
    printf("%#o\n",255); //八進(jìn)制
    return 0;
}

四、位運(yùn)算知識(shí)點(diǎn)

位運(yùn)算:~ 按位取反、| 按位或  & 按位與  >>按位右移  <<按位左移   ^異或運(yùn)算
邏輯運(yùn)算符: || 邏輯或  && 邏輯與   !邏輯非  (邏輯只有真假 0和1  非0即為真)

~ 按位取反的規(guī)則:  0為1、1為0
例如:  
unsigned char a=0x38;
00111000
11000111
~a等于11000111

| 按位或的規(guī)則:  有1為1,全0為0
& 按位與的規(guī)則:  有0為0,全1為1
>>按位右移的規(guī)則: 低位溢出、高位補(bǔ)0
<<按位左移的規(guī)則: 高位溢出,低位補(bǔ)0
^異或運(yùn)算的規(guī)則: 相同為0 不同為1

  審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135858
  • 位運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    8409
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言中的基本數(shù)據(jù)類型

    C語言是非常重要的一門程序設(shè)計(jì)語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因?yàn)榇蟛糠?/div>
    發(fā)表于 04-26 17:33 ?1952次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的基<b class='flag-5'>本數(shù)據(jù)類型</b>

    C語言中基本數(shù)據(jù)類型、變量和常量的使用

    C語言中基本數(shù)據(jù)類型、變量和常量的使用
    發(fā)表于 08-18 16:42 ?2444次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中基<b class='flag-5'>本數(shù)據(jù)類型</b>、變量和常量的使用

    技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

    C語言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲(chǔ)范圍和操作方式,而變量則是存儲(chǔ)數(shù)據(jù)的容器
    的頭像 發(fā)表于 07-26 17:53 ?1856次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:基<b class='flag-5'>本數(shù)據(jù)類型</b>和變量

    C語言本數(shù)據(jù)類型,變量和常量

    ),float(單精度浮點(diǎn)型),double(雙精度浮點(diǎn)型),signed(有符號(hào)) ,unsigned(無符號(hào)),long(長(zhǎng)整型)數(shù)據(jù)數(shù)據(jù)類型的單詞在C語言中稱為關(guān)鍵字非基
    發(fā)表于 01-16 11:33

    Java基本數(shù)據(jù)類型之間的運(yùn)算規(guī)則是什么?

    Java基本數(shù)據(jù)類型Java變量的使用說明Java基本數(shù)據(jù)類型之間的運(yùn)算規(guī)則
    發(fā)表于 11-04 09:59

    C語言的基本數(shù)據(jù)類型包括哪幾種

    C語言的基本數(shù)據(jù)類型包括哪幾種?分別是什么?
    發(fā)表于 10-14 12:27

    C預(yù)處理與C語言本數(shù)據(jù)類型

    指令表:注意:宏名的書寫由標(biāo)識(shí)符與兩邊各兩條下劃線構(gòu)成。C語言本數(shù)據(jù)類型不同操作系統(tǒng)中數(shù)據(jù)類型所占字節(jié)數(shù)圖解數(shù)據(jù)類型的其他分類:變量常量(
    發(fā)表于 12-21 08:29

    Java的基本數(shù)據(jù)類型與條件結(jié)構(gòu)

    《Java基礎(chǔ)入門》第二篇1 基本數(shù)據(jù)類型,運(yùn)算符與表達(dá)式,條件結(jié)構(gòu),循環(huán)結(jié)構(gòu)...
    發(fā)表于 12-23 08:02

    單片機(jī)C語言中常用的基本數(shù)據(jù)類型分為哪幾類

    不管在什么語言中,定義一個(gè)變量時(shí)必然要在內(nèi)存中開辟一個(gè)相應(yīng)大小的空間來存儲(chǔ)該變量。不同的數(shù)據(jù)類型在內(nèi)存所占的空間大小不同,其所能表示的數(shù)據(jù)范圍也不相同。在單片機(jī)C
    發(fā)表于 02-28 06:46

    C語言教程之C語言本數(shù)據(jù)類型與順序程序設(shè)計(jì)講解

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言教程之C語言本數(shù)據(jù)類型與順序程序設(shè)計(jì)講解。在程序運(yùn)行時(shí),其值不能被改變的量稱為常量。常量可分為三種:整型
    發(fā)表于 10-26 16:48 ?3次下載

    C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料概述主要內(nèi)容包括了:1 C
    發(fā)表于 10-31 18:04 ?30次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設(shè)計(jì)教程之基<b class='flag-5'>本數(shù)據(jù)類型</b>、<b class='flag-5'>運(yùn)算</b>符和表達(dá)式的詳細(xì)資料概述

    C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型運(yùn)算符及表達(dá)式的資料說明

    本文檔詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型運(yùn)算符及表達(dá)式的資料說明主要內(nèi)容包括了:1 C數(shù)據(jù)
    發(fā)表于 01-25 15:44 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設(shè)計(jì)教程之基<b class='flag-5'>本數(shù)據(jù)類型</b>和<b class='flag-5'>運(yùn)算</b>符及表達(dá)式的資料說明

    51單片機(jī)學(xué)習(xí)筆記(9)——C51的基本數(shù)據(jù)類型和擴(kuò)充數(shù)據(jù)類型

    本數(shù)據(jù)類型:擴(kuò)充數(shù)據(jù)類型
    發(fā)表于 11-14 13:36 ?1次下載
    51單片機(jī)學(xué)習(xí)筆記(9)——<b class='flag-5'>C</b>51的基<b class='flag-5'>本數(shù)據(jù)類型</b>和擴(kuò)充<b class='flag-5'>數(shù)據(jù)類型</b>

    C語言數(shù)據(jù)類型-2

    對(duì)于一個(gè)計(jì)算機(jī)程序,它所做的所有運(yùn)算的本質(zhì)都是數(shù)據(jù)的處理。但是數(shù)據(jù)的樣式并不單一,因此就有了各種各樣的數(shù)據(jù)類型。在C
    的頭像 發(fā)表于 02-21 14:44 ?748次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>數(shù)據(jù)類型</b>-2

    本數(shù)據(jù)類型分享

    本數(shù)據(jù)類型本數(shù)據(jù)類型:包括、序列、整數(shù)、浮點(diǎn)數(shù)、日期時(shí)間。此外字符也屬于基本數(shù)據(jù)類型,請(qǐng)參見文檔String與WString。 1
    的頭像 發(fā)表于 06-13 14:14 ?9200次閱讀
    基<b class='flag-5'>本數(shù)據(jù)類型</b>分享