Why? Help,THANKS!

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
674件の閲覧回数
lihao
Contributor I

# define  BUS   (48000000)

# define  PRE  (64)

# define  CLK    ( BUS / (10000*PRE) )

 

main()

{

     unsigned int  A;

     A= CLK;

}

 

******************************************

result:   A=CLK= 62411,    why? Help,Thank you!

ラベル(1)
1 解決策
592件の閲覧回数
kef
Specialist I

(int)10000 * (int)64 = (int)0xC400 = (int)-15360

(long)48000000 / (int)-15360 = -3125

(unsigned int)-3125 = 0xF3CB = 62411

Some UL's or typecasts are missing, try this:

# define  BUS   (48000000ul)

# define  CLK    ( BUS / (10000ul*PRE) )

元の投稿で解決策を見る

2 返答(返信)
593件の閲覧回数
kef
Specialist I

(int)10000 * (int)64 = (int)0xC400 = (int)-15360

(long)48000000 / (int)-15360 = -3125

(unsigned int)-3125 = 0xF3CB = 62411

Some UL's or typecasts are missing, try this:

# define  BUS   (48000000ul)

# define  CLK    ( BUS / (10000ul*PRE) )

592件の閲覧回数
lihao
Contributor I

Thanks you very much!   Best wishes for you!

0 件の賞賛
返信