zoukankan      html  css  js  c++  java
  • Python中整形溢出的问题

    1. 整形的范围

    [-2^31, 2^31 - 1]

    2. 如何判断溢出

      若想判断x是否溢出,判断操作如下:

     M = (2 ^31 - 1) // 10
     y = x // 10
     z = x % 10
     if y > M or (y == M and z > 7):
       print(“溢出”)

    3. 例子

    给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
    你有注意到翻转后的整数可能溢出吗?因为给出的是32位整数,则其数值范围为[−2^31, 2^31 − 1]。翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。

    示例1:

    输入:12
    输出:21

    示例2:

    输入:-123
    返回值:-321

    示例3:

    输入:1147483649
    返回值:0

    4. Code

     1 class Solution:
     2     def reverse(self, x):
     3         # 判断符号
     4         # 默认正好
     5         MAX, MIN = 2**31 - 1, -(2 ** 31)
     6         print(MAX, MIN)
     7         M = MAX // 10
     8         flag = True
     9         if x == 0:
    10             return 0
    11         elif x < 0:
    12             x = -x
    13             # 负号
    14             flag = False
    15 
    16         res = 0
    17         while x > 0:
    18             x, v = divmod(x, 10)
    19             if res > M or (res == M and v > 7):
    20                 return 0
    21             res = res * 10 + v
    22         return res if flag else -res
    23 
    24 
    25 if __name__ == '__main__':
    26     x = 2123456789
    27     print(Solution().reverse(x))

     5. 结语

      努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!

      如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。

    但行好事 莫问前程
  • 相关阅读:
    大同世界的Java 和.NET 开发
    关于Memcached 你了解多少?
    C#二进制与字符串之间的相互转换
    Nopcommerce主要用到的技术及特点
    小程序之路
    .NET方面的框架的整理和总结
    如何将FastReportOnlineDesign 灵活的应用到C/S B/S 程序当中?
    WebApi 的CRUD 的方法的应用
    关于EF 通用增删改查的封装
    基于Json序列化和反序列化通用的封装
  • 原文地址:https://www.cnblogs.com/haifwu/p/15311178.html
Copyright © 2011-2022 走看看