2013-05-26 39 views
0

我已经知道,直到日期,在十六进制数移位操作

现在%×版画,当我写printf("%x", -1<<4),输出FFFFFFF0

但是,当我写printf("%x", 5<<2),输出为14

为什么第二个输出一个十进制数?

+1

是你期待什么结果呢? –

+0

好吧,当我使用%x时,至少输出应该是十六进制的 – Ceres111

+0

但是,又一次,你期待的结果是什么? –

回答

0

14个十六进制字符集的一部分,它的只是结果:

地板(20/16)和20%的16

+0

很好在十六进制集,我认为它的0-9和A- F – Ceres111

+0

@ Ceres111和1和4都在0-9的范围内。 –

+0

@nfroidure好吧,我明白了......你的意思是它的一个四个而不是十四个 – Ceres111