C语言--有符号16进制转换

1、有符号的16进制数,最高位代表符号位,0表示为正数,1表示为负数;

    例如:(1)1110 1100(EC)为负数;

              (2)0110 1100(6C)为正数;

2、16进制正数转换为10进制数

    例如:0110 1100(6C)= 6*16+12 = 108

3、16进制负数转换为10进制数     

    例如:1110 1100(EC)

   转换原则为:除最高位以外的所有位取反,之后后加1(就是把十六进制转成二进制用补码)     

   取反: 1001 0011

   加1:1001 0110

   最高位表示符号位负数,所以转换结果为-32


版权声明:本文为zwb_578209160原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。