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位的有/无符号整数的更多相关文章

  1. 23.Python位运算符详解

    位运算符通常在图形.图像处理和创建设备驱动等底层开发中使用.使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效. 位运算 ...

  2. Delphi_03_Delphi_Object_Pascal_基本语法_01

    这次是一个基本语法的第一部分,包括变量.变量初始化.常量.运算符.字符串等内容. { 本程序演示 Delphi Pascal 的基本语法 1.变量及变量的初始化 2.常量 3.运算符 3. 4. } ...

  3. Google之Chromium浏览器源码学习——base公共通用库(一)

    Google的优秀C++开源项目繁多,其中的Chromium浏览器项目可以说是很具有代表性的,此外还包括其第三开发开源库或是自己的优秀开源库,可以根据需要抽取自己感兴趣的部分.在研究.学习该项目前的时 ...

  4. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...

  5. JVM-字节码指令

    Java虚拟机字节码指令 了解了class文件,我觉得就很有必要去了解一下JVM中的字节码指令,那样堆class文件以及JVM运行机制也后很大的帮助. Java虚拟机的指令由一个字节长度的,代表着某种 ...

  6. 使用虚幻引擎中的C++导论(四-内存管理与垃圾回收)(终)

    使用虚幻引擎中的C++导论(四)(终) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如 ...

  7. Java虚拟机--字节码指令集

    1. 字节码指令集简介: Java虚拟机的指令由一个字节长度的,代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成.虚拟机中许多指 ...

  8. 实现一个websocket服务器-理论篇

    本文是Writing WebSocket servers的中文文档,翻译自MDNWriting WebSocket servers.篇幅略长,个人能力有限难免有所错误,抛砖引玉共同进步. websoc ...

  9. 如何实现websocket服务器-理论篇

    WebSocket 服务器简单来说就是一个遵循特殊协议监听服务器任意端口的tcp应用.搭建一个定制服务器的任务通常会让让人们感到害怕.然而基于实现一个简单的Websocket服务器没有那么麻烦. 一个 ...

随机推荐

  1. python tips: for循环的小问题

    在python中,用for对列表进行遍历的时候,迭代器中维护的是列表的索引而不是列表的元素.也就是说,for循环是对索引进行迭代,如果在for循环过程中修改了列表,迭代出来的值是新列表的索引位置,如果 ...

  2. BZOJ 4827: [Hnoi2017]礼物 FFT_多项式_卷积

    题解稍后在笔记本中更新 Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r&q ...

  3. FFmpeg avcodec_send_packet压缩包函数

    首先看一下FFmpeg关于该packet函数的注释: int avcodec_send_packet ( AVCodecContext *  avctx,     const AVPacket *  ...

  4. 匈牙利&&EK算法(写给自己看)

    (写给自己看)匈牙利算法(最大匹配)和KM算法(最佳匹配) 匈牙利算法 思想 不断寻找增广路,每次寻得增广路,交换匹配边和非匹配边,则匹配点数+1 这里增广路含义:交错路,即从未匹配点出发经过未匹配边 ...

  5. 网络教程(7)OSI模型的低层模型

    OSI Model——Open System Interconnection Model 开放系统互联模型

  6. 佛祖保佑,永不宕机,永无 Bug

    转自:http://top.jobbole.com/17580/ 佛祖保佑,永不宕机,永无 Bug 为何服务器频遭黑客攻击?为何系统频频宕机,别人家系统却稳如泰山,坚如磐石?为何运维人员和系统管理员行 ...

  7. 0112centos上面l安装卸载mysq

    http://www.centoscn.com/CentosServer/sql/2015/0409/5127.html常用命令cat /etc/issuerpm -qa | grep mysqlyu ...

  8. nodejs-mysql模块

    安装mysql模块 1 npm install -g mysql node中使用Mysql模块来执行mysql命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var ht ...

  9. EasyUI----动态拼接EasyUI控件

    近期在做的项目中.依据查询到的数据,然后动态的拼接easyUI的控件显示到界面上. 在数据库中,有一个命令的表,另一个參数的表,先到命令的表中去查询这一个设备有哪些命令,比方说.摄像头有一个转动的命令 ...

  10. ContextMenu的使用具体解释

    二话不说,先上图: 能够非常easy看到这是一个类似于Dialog悬浮在活动上的控件,它是由被注冊的view长按所触发的. 当然啦,也有其它的实现方式,这里就先介绍一下系统的ContextMenu:( ...