十六进制数据转换十进制时区别正负值(Python) |
您所在的位置:网站首页 › 负数转换为16进制的方法是什么 › 十六进制数据转换十进制时区别正负值(Python) |
一、当我们使用Python进行十六进制数据转换十进制数据时,因为可能存在有符号情况下正负值的问题,所以在转换时要特别留意加以区分。 1、单字节(无符号):0到255;(有符号):-128到127。2、双字节(无符号):0到65535;(有符号):-32768到32765。3、四字节(无符号):0到4294967295;(有符号):-2147483648到2147483647。无符号:从0000 0000(0)到1111 1111(2^8-1=255)。 有符号:有一位表示符号位(1表示负,0表示正)正数从0 000 0000(0)到 0 111 1111(2^7-1=127,第一位0表示正)。负数:从1 000 0000到1 111 1111(-(2^7-1)=-127)。 负数在计算机中用补码表示-0的补码为0000 0000与+0的表示一致,所以用0000 0000表示+0和-0。所以1 000 0000不表示-0而表示-128。 二、在实际使用的过程中,负数直接就是一个十六进制数,并没有带符号,以单字节举例: 实际的单字节十六进制有符号情况下,最大值是在7F,所以当单字节十六进制数大于7F时,便是负值。这时按照 0xFF - x + 0x01 的计算公式,将其转换为十进制数值。 例: # 正数 a = 0x64 print("0x64的正十进制:" + a) #负 b = 0x9C b = 0xFF - b + 0x01 print("0x9C的负十进制:" + b) #输出 #0x64的正十进制:100 #0x9C的负十进制:-100 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |