首页 > 其他 > 详细

X位的有/无符号整数

时间:2019-05-21 20:45:17      阅读:136      评论:0      收藏:0      [点我收藏+]

X位的有符号整数

  • 以4位为例,不管多少位都是相同的概念

  • 在有符号整数中,第一位二进制位用来表示符号,0为正1为负

  • 最大值当然是全部填满1,也就是0111,而最小值全部填满0,也就是1000

  • 所以取值范围是[-2**3, 2**3-1]

X位的无符号整数

  • 如上,以以4位为例

  • 没有符号的概念,最大值,把4位全填满1,也就是1111,最小值则是0000

  • 所以取值范围是[0, 2**4-1]

知识点来自leetcode整数翻转

  • 题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  • 示例:输入123 输出321 ,输入-123 输出-321,输入120输出21,输入918739871939 输出0
  • 还没有学到函数,所以代码未使用函数,若要放入leetcode中,将x的定义删除,print换成return即可
  • 以下为代码解析
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

X位的有/无符号整数

原文:https://www.cnblogs.com/lucky75/p/10901854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!