以4位为例,不管多少位都是相同的概念
在有符号整数中,第一位二进制位用来表示符号,0为正,1为负
最大值当然是全部填满1,也就是0111
,而最小值全部填满0,也就是1000
所以取值范围是[-2**3, 2**3-1]
如上,以以4位为例
没有符号的概念,最大值,把4位全填满1,也就是1111
,最小值则是0000
所以取值范围是[0, 2**4-1]
123
输出321
,输入-123
输出-321
,输入120
输出21,输入918739871939
输出0
x = 1231312412
if x == 0: # 去除X等于0的情况
print(0)
x = str(x) # 将x转换成字符串
l = len(x)
if x[-1] == '0': # 如果最后一位数是0,把0切除
x = x[:l-1]
if '-' in x: # 如果是负数,切掉符号翻转后加回来
a = '-' + x[l:0:-1]
else: # 如果是正数,直接翻转
a = x[::-1]
a = int(a) # 把a变回整型
if -2 ** 31 > a or a > 2 ** 31 - 1: # 如果翻转后的值超出了32位有符号整数,a=0
a = 0
print(a)
2142131321
原文:https://www.cnblogs.com/lucky75/p/10901854.html