日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年11月19日(星期二)

正在發(fā)生

2019年11月19日 | stm32 C語言的數(shù)據(jù)類型說明

發(fā)布者:等放假的Lwj 來源: eefocus關(guān)鍵字:stm32  C語言  數(shù)據(jù)類型說 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

stm32編程過程經(jīng)常定義變量類型,經(jīng)常擔(dān)心數(shù)據(jù)運算過程中 超過變量類型范圍。因為在編程過程中,不同的CPU,其數(shù)據(jù)類型的意義各不相同,所以一定要注意相應(yīng)變量數(shù)據(jù)類型的定義和轉(zhuǎn)換,否則在計算中可能會出現(xiàn)不確定的錯誤。所以下面列出常見數(shù)據(jù)類型:


一、C語言數(shù)據(jù)類型


stm32使用的數(shù)據(jù)類型定義在 stm32f4xx.h中


整型定義:


#include "core_cm4.h"             /* Cortex-M4 processor and core peripherals */

#include "system_stm32f4xx.h"

#include

 

/** @addtogroup Exported_types

  * @{

  */  

/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */

typedef int32_t  s32;

typedef int16_t s16;

typedef int8_t  s8;

 

typedef const int32_t sc32;  /*!< Read Only */

typedef const int16_t sc16;  /*!< Read Only */

typedef const int8_t sc8;   /*!< Read Only */

 

typedef __IO int32_t  vs32;

typedef __IO int16_t  vs16;

typedef __IO int8_t   vs8;

 

typedef __I int32_t vsc32;  /*!< Read Only */

typedef __I int16_t vsc16;  /*!< Read Only */

typedef __I int8_t vsc8;   /*!< Read Only */

 

typedef uint32_t  u32;    /*常用類型*/

typedef uint16_t u16;

typedef uint8_t  u8;

 

typedef const uint32_t uc32;  /*!< Read Only */

typedef const uint16_t uc16;  /*!< Read Only */

typedef const uint8_t uc8;   /*!< Read Only */

 

typedef __IO uint32_t  vu32;

typedef __IO uint16_t vu16;

typedef __IO uint8_t  vu8;

 

typedef __I uint32_t vuc32;  /*!< Read Only */

typedef __I uint16_t vuc16;  /*!< Read Only */

typedef __I uint8_t vuc8;   /*!< Read Only */

浮點型:

#if !defined(__STRICT_ANSI__) || defined(__USE_C99_MATH)

  /* C99 additions */

  typedef float float_t;

  typedef double double_t;

注:還有float 浮點型 編譯器中不能看到其定義(估計已編譯了)。

而uint32_t 、uint16_t、uint8_t在哪里定義?在stdint.h文件中,詳見下面:


    /* exact-width signed integer types */

typedef   signed          char int8_t;

typedef   signed short     int int16_t;

typedef   signed           int int32_t;

typedef   signed       __int64 int64_t;

 

    /* exact-width unsigned integer types */

typedef unsigned          char uint8_t;

typedef unsigned short     int uint16_t;

typedef unsigned           int uint32_t;

typedef unsigned       __int64 uint64_t;

 

    /* minimum values of exact-width signed integer types */

#define INT8_MIN                   -128     /* s8 占用1個byte,數(shù)據(jù)范圍 -2^7  到 (2^7-1)  */

#define INT16_MIN                -32768 /* s16 占用2個byte,數(shù)據(jù)范圍 -2^15 到 (2^15-1) */

#define INT32_MIN          (~0x7fffffff)   /* -2147483648 is unsigned   s32 占用 4個byte,數(shù)據(jù)范圍 -2^31 到 (2^31-1)   */

#define INT64_MIN  __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned  int64_t占用8個byte,數(shù)據(jù)范圍 -2^63 到 (2^63-1) */

 

    /* maximum values of exact-width signed integer types */

#define INT8_MAX                    127

#define INT16_MAX                 32767

#define INT32_MAX            2147483647

#define INT64_MAX  __ESCAPE__(9223372036854775807ll)

 

    /* maximum values of exact-width unsigned integer types */

#define UINT8_MAX                   255 /* u8  占用1個byte, 數(shù)據(jù)范圍 0 - 2^8*/

#define UINT16_MAX                65535 /* u16 占用2個byte, 數(shù)據(jù)范圍 0 - 2^16*/

#define UINT32_MAX           4294967295u /* u32 占用4個byte, 數(shù)據(jù)范圍 0 - 2^32*/

#define UINT64_MAX __ESCAPE__(18446744073709551615ull)


由上述可知:

1、有符號整型


s8 占用1個byte,數(shù)據(jù)范圍 -2^7  到 (2^7-1)

s16 占用2個byte,數(shù)據(jù)范圍 -2^15 到 (2^15-1)

s32 占用 4個byte,數(shù)據(jù)范圍 -2^31 到 (2^31-1)2^31  = 2147483647

int64_t占用8個byte,數(shù)據(jù)范圍 -2^63 到 (2^63-1)    2^63 = 9223372036854775807ll

2、無符號整型


u8  占用1個byte, 數(shù)據(jù)范圍 0 - 2^8

u16 占用2個byte, 數(shù)據(jù)范圍 0 - 2^16

u32 占用4個byte, 數(shù)據(jù)范圍 0 - 2^32 2^32  = 4294967295

uint64_t 占用8個byte, 數(shù)據(jù)范圍 0 - 2^64 2^64  = 18446744073709551615

3、浮點型

    float ——4個byte,有符號型,可以表達(dá)負(fù)數(shù)/小數(shù); Float 類型至少要能精確表示到小數(shù)點后6位。

   double——8個byte,有符號型,可以表達(dá)負(fù)數(shù)/小數(shù);Double 類型至少要能精確到小數(shù)點后 10 位。

二、不同數(shù)據(jù)類型混合運算


在C語言中,不同類型的數(shù)據(jù)間是可以混合運算的。在進(jìn)行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。轉(zhuǎn)換的規(guī)則如下:


注意:箭頭的方向只表示數(shù)據(jù)類型級別的高低,由低向高轉(zhuǎn)換,這個轉(zhuǎn)換過程是一步到位的。


(三)數(shù)據(jù)類型轉(zhuǎn)換規(guī)則


各類數(shù)據(jù)類型的轉(zhuǎn)換,分為兩種方式:隱式(編譯軟件自動完成),顯式(程序強(qiáng)制轉(zhuǎn)換)


隱式轉(zhuǎn)換規(guī)則:


字符必須先轉(zhuǎn)換為整數(shù)(C語言規(guī)定字符類型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用) 

   short型轉(zhuǎn)換為int型(同屬于整型) 

   float型數(shù)據(jù)在運算時一律轉(zhuǎn)換為雙精度(double)型,以提高運算精度(同屬于實型) 

   賦值時,一律是右部值轉(zhuǎn)換為左部類型 

[注] 

     當(dāng)整型數(shù)據(jù)和雙精度數(shù)據(jù)進(jìn)行運算時,C先將整型數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù),再進(jìn)行運算,結(jié)果為雙精度類型數(shù)據(jù) 

     當(dāng)字符型數(shù)據(jù)和實型數(shù)據(jù)進(jìn)行運算時,C先將字符型數(shù)據(jù)轉(zhuǎn)換成實型數(shù)據(jù),然后進(jìn)行計算,結(jié)果為實型數(shù)據(jù)


顯式轉(zhuǎn)換規(guī)則:


例:(int)(x+y);


注:強(qiáng)制類型轉(zhuǎn)換時,得到一個所需要的中間變量,原來變量的類型未發(fā)生變化。

關(guān)鍵字:stm32  C語言  數(shù)據(jù)類型說 引用地址:stm32 C語言的數(shù)據(jù)類型說明

上一篇:使用Ulink2的JTAG與SWD 調(diào)試stm32 區(qū)別
下一篇:stm32常用數(shù)據(jù)類型 U8、U16、U32到底代表什么?

推薦閱讀

近年來,人臉識別已是人工智能浪潮中最火熱的技術(shù)之一,正大規(guī)模走入各行各業(yè),既方便了人們的生活,又能提高效率,逐漸成為日常生活中的“標(biāo)配”。僅11月15日就可以看到許多落地新聞:杭州公安交警宣布駕考科目一和科目三安全文明駕駛常識考場新增人臉識別比對系統(tǒng);騰訊游戲稱,為保護(hù)未成年人健康上網(wǎng),人臉識別驗證二次抽樣測試也于即日從北京開始啟動;...
sysfs 文件系統(tǒng)linux2.6內(nèi)核引入sysfs文件系統(tǒng),sysfs可以看成與proc,devfs和devpty同類別的文件系統(tǒng),該文件系統(tǒng)是虛擬的文件系統(tǒng),可以更方便對系統(tǒng)設(shè)備進(jìn)行管理。它可以產(chǎn)生一個包含所有系統(tǒng)硬件層次視圖,與提供進(jìn)程和狀態(tài)信息的proc文件系統(tǒng)十分類似。sysfs把連接在系統(tǒng)上的設(shè)備和總線組織成為一個分級的文件,它們可以由用戶空間存取,向用戶空間導(dǎo)...
全球領(lǐng)先的電子元器件分銷商 Digi-Key Electronics 宣布為客戶推出全新的報價管理器工具。使用 Digi-Key 的這款自助服務(wù)工具,客戶可以隨時從任何設(shè)備和任何地方快速、輕松地生成定價有保證的報價單。 Digi-Key 的報價管理器已經(jīng)更新,現(xiàn)在能讓您獲得更好的體驗、更快的速度和有...
芯片設(shè)計廠商聯(lián)發(fā)科技(MediaTek.Inc,也稱為聯(lián)發(fā)科)召開EO Summit年度高管峰會。會上,聯(lián)發(fā)科技公布了新一代旗艦SoC天璣9000的相關(guān)細(xì)節(jié),該芯片將采用4納米制程工藝,使用Arm最新的X2超大核,安兔兔跑分可超過100萬。聯(lián)發(fā)科技新一代旗艦SoC天璣9000  據(jù)聯(lián)發(fā)科技介紹,天璣9000將是世界首款采用臺積電4納米制程工藝的移動芯片,擁有低功耗、高性能的特...

史海拾趣

問答坊 | AI 解惑

仙童模塊資料

系列功率模塊資料…

查看全部問答∨

求助:手機(jī)相關(guān)研發(fā)

小弟大四了,學(xué)的是軟件工程。對C相當(dāng)熟悉,在.NET平臺上作過幾個簡單設(shè)計。   前不久找了份工作,是個手機(jī)通訊設(shè)備公司。筆試面試由于我C語言比較好,就給了我OFFER,簽了。   由于忙畢設(shè)(一個BS工程),無法提前到公司實 ...…

查看全部問答∨

VB。NET datagrid刷新一個字段的問題。

記得在WINDOWS 程序里面,只要把一個字段綁定到一個文本框上,然后修改文本框,之后就自動提交了,我在WINCE里也這樣設(shè)置的,但是我更改了文本框之后,發(fā)現(xiàn)刷新不了,不知道什么原因。 我就是用了個dataset.acceptchanges() 不起作用啊?!?

查看全部問答∨

IHLP2525CZERR47M01

這個是什么電感啊? 還有,這個電感是06+的,有點點氧化,可以用么?因為整個電子市場只剩下這盤貨.現(xiàn)在客戶說要我想辦法…

查看全部問答∨

LED顯示屏色度處理技術(shù)

 各類色度處理技術(shù)   1、基色波長的選擇   LED顯示屏在各行各業(yè)有著非常廣泛的應(yīng)用,而在不同的應(yīng)用場所對LED的基色波長有著不同的要求,對于LED基色波長的選擇有些是為了取得良好的視覺效果,有些是為了符合人們的習(xí)慣,而有些更是行業(yè)標(biāo)準(zhǔn) ...…

查看全部問答∨

有誰能把STM32庫函數(shù)這三句TIM1_TimeBaseStructInit最基本的通俗解釋一下

TIM1_TimeBaseInitTypeDef  TIM1_TimeBaseStructure;TIM1_OCInitTypeDef  TIM1_OCInitStructure;TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure; 我知道是初始化操作  …

查看全部問答∨

【LPC54100】總結(jié)

本帖最后由 強(qiáng)仔00001 于 2015-5-25 00:43 編輯 最近多事,有些忙不過來了,原本自己想用ADXL345做個可以計步的手環(huán)。可惜還沒完成,程序還在寫?;仡櫹伦约簬讉€月來的學(xué)習(xí),也得到了不少的收獲。還有很多東西要向論壇里的大大們學(xué)習(xí)。到了月底才 ...…

查看全部問答∨

OPENRISC 2.1.1 尋址模式

當(dāng)處理器執(zhí)行一條內(nèi)存訪問指令或者分支指令或者取下一條指令時需要計算有效地址。如果有效地址和操作數(shù)長度之和超過最大的有效地址邏輯空間,內(nèi)存操作數(shù)將從最大有效地址環(huán)回到有效地址 0。 1. 寄存器間接尋址裝載和存儲指令使用這種尋址方式。16 ...…

查看全部問答∨

求職建議咨詢

本人2016屆畢業(yè)生,小碩,在秋季招聘季也拿了幾個小offer。 ①、青島四方車輛研究所——電氣工程師 ②、華為南研所——單板硬件工程師 我是電力電子專業(yè)的,研究生階段做的項目偏嵌入式多一些,現(xiàn)在比較困惑去哪個公司,請了解的壇友給指點一下 ...…

查看全部問答∨

創(chuàng)意分享: "星光"LED鐘

正好,今天打樣的PCB回來了,先睹為快。 背面一個ATMEL ATmega48作主控。正面是數(shù)字顯示面。不使用產(chǎn)生閃爍感的掃描驅(qū)動,28個筆段不夠用,所以設(shè)計用74HC164來做串行鎖存。板子的左右兩邊是對稱的,可以割開了只用一半,做定時器啥的也可以 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved