『壹』 單片機char 100等於int 多少,是怎麼計算的
1、可以轉換,強制轉換就行。例如:
int a=100;
unsigned char * c = (unsigned char *)a;
2、強制類型轉換
當操作數的類型不同,而且不屬於基本數據類型時,經常需要強制類型轉換,將操作數轉化為所需要的類型。強制類型轉換具有兩種形式,稱為顯式強制轉換和隱式強制類型轉換。
顯式強制類型轉換
顯式強制類型轉換需要使用強制類型轉換運算符,格式如下:
type(<expression>)
或
(type)<expression>
其中,type為類型描述符,如int,float等。<expression>為表達式。經強制類型轉換運算符運算後,返回一個具有type類型的數值,這種強制類型轉換操作並不改變操作數本身,運算後操作數本身未改變,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述強制類型轉換的結果是將整型值0xab65的高端兩個位元組刪掉,將低端兩個位元組的內容作為char型數值賦值給變數cChar,而經過類型轉換後nVar的值並未改變。
『貳』 C語言強制類型轉換
強制類型轉換是把變數從一種類型轉換為另一種數據類型。
例如,如果您想存儲一個 long 類型的值到一個簡單的整型中,您需要把 long 類型強制轉換為 int 類型。您可以使用強制類型轉換運算符來把值顯式地從一種類型轉換為另一種類型。
(2)單片機強制類型轉換運算符號擴展閱讀:
舉例說明
使用強制類型轉換運算符把一個整數變數除以另一個整數變數,得到一個浮點數:
#include <stdio.h>int main()
{
int sum = 17, count = 5;
double mean;
mean = (double) sum / count;
printf("Value of mean : %f
", mean );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Value of mean : 3.400000
『叄』 在學STM32F4單片機 RTC實驗裡面有這么一句代碼 (*(u32*)temp)=data這是什麼意思
強制類型轉換。
u32 是一個自定義的數據類型。
u32*是一個指針類型。
temp 前面加(u32*)是把temp強制轉換成 指向u32類型的指針。
前面再加一個*,是訪問指針指向的地址。
temp是一個整數,這個整數實際上是一個內存地址,這句的意思是把data內容放到temp所指向的地址的內存單元中。
這實際上是一個低層訪問,除了匯編語言,就數C語言做這種低層操作比較簡單,所以,單片機大都用C語言編程。