この状況で「n」に何が起こっているのか誰か説明してもらえますか?
main.c
unsigned long temp0;
PLLSYS0_FWD_DIV_A_DECODE(n);
main.h
#define PLLSYS0_FWD_DIV_A_DECODE(n) ((((unsigned long)(n))>>8)& 0x0000000f)
n が 8 ビット シフトされ、0x0000000f と AND 演算されていることを理解しています。(unsigned long)(n) は実際に何をするのでしょうか?
#include <stdio.h>
int main(void)
{
unsigned long test1 = 1;
printf("test1 = %d \n", test1);
printf("(unsigned long)test1 = %d \n", (unsigned long)(test1));
return 0;
}
出力:
test1 = 1
(unsigned long)test1 = 1