int :-32768——+32767
最高位为符号位:0代表正,1代表负
正数:补码,反码,原码相同
负数:补码是正数取反加一
32767 的编码0111111111111111
取反为1000000000000000
再加1得到-32767的编码:
1000000000000001
-32768比32767还少1:自然就是:
1000000000000000
在原码运算时,首先要把符号与数值分开。例如两数相加,先要判断两数的符号,如果同号,可以做加法,如果异号,实际要做减法,减后的差作为两数之和,和数的符号与绝对值较大的数的符号相同。两数相减也是一样,首先要判断两数符号,然后决定是相加还是相减,还要根据两数的大小与符号决定两数之差的符号。
如果是补码运算则不存在符号与数值分开的问题。在补码运算时,把符号位也看成数值,一起参加运算,而且加法运算就一定是相加,减法运算就一定是相减,因此在计算机中对带符号的数进行加减时,最好使用补码。
补码的运算规则是:X补 + Y补 = (X + Y)补
在y - x算式中,最高位发生的进(借)位,若运算结果并未超出补码的记数范围,这时的进(借)位被视为自然丢弃。计算机在运算中,这种自然丢弃并不影响结果的正确性。
如果计算结果超过补码所允许的表示范围,则其进位称之为溢出。溢出和自然丢弃是两种不同的概念。判别属于哪一种,则要看计算结果最高位与次高位的进位情况,如果最高位和次高位同时产生进位,即所谓双进位,则这种进位属于允许的自然丢弃。如果只有最高位或者只有次高位产生进位,即只有单进位,则这种进位属于溢出,溢出表示其数值超出计算机字长所能表示的范围,运算结果必然是错误的,因而也是不允许的。(另外还有采用双符号位时的判断方法)
溢出的概念主要是指带符号二进制数进行加减运算时可能产生的一种结果。对于无符号数,最高位不是符号位,不采用溢出这个概念(标准规定没有溢出,也就是说,其溢出后的数值是可以确定的,另外也不会有什么被标记的溢出错误)。
当两个无符号数相减时,不允许用小的数去减大的数,因为小减大它的差一定是负数,无符号数的前提是没有符号,显然也不允许有负数,如果这样做,减的结果也必然是错误的。
转载自:补码运算-溢出和自然丢弃
今天学习了一下Swagger的继承文档功能我们为什么要使用Swagger呢?在前后端通过分离的方式开发项目时,我们作为后端程序员,需要给予前端各种各样的接口,但是前端是不懂得代码的,所以我们在进行接口开发之后,还需要为接口写入一个文档,单独为接口介绍,使得前端人员能够通过此介绍方式在前端页面能够调用我们后台的控制器,而有时候在开发时,因为某些因素的变化,我们就需要对接口进行改变,那时,我们又需要重新修改接口并且还要重写我们给与前端的接口介绍文档,这样就使得我们的开发变得十分的麻烦,因此,Swagger_不写代码怎么编写swagger接口
在做WinForm应用的时候,大部分情况下都会碰到在线程中访问界面上控件的问题;然而我们并不能用传统方法来访问界面上的控件,c#中禁止跨线程直接访问控件,InvokeRequired就是为了解决这个问题而产生的。 Control.InvokeRequired 获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方
本地的情况是这样的,composer已安装,因为项目(thinkphp的)需要安装一个ffmpeg的包,但是安装了很多次都安装不了,后来发现因为在git上,所以索性把包从git上下载下来了,想从本地来安装,实在忍受不了那个安装的速度。切换到国内源,阿里源也切换过了,但是就是下不下来,只好把包离线下载下来本地安装了。开始很happy地百度这方面的文章,但是大多数方法都不行。于是找朋友骨骼了一下,果然国外才有干货。直接上干货吧:首先删除项目目录下的composer.lock,然后把下载好的包传到一个能产_composer离线安装包
初始化滴答定时器延时程序
python读写excel文件有很多种方法:用xlrd和xlwt进行excel读写用openpyxl进行excel读写用pandas进行excel读写本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据一、xlrd和xlwt的安装安装很简单,windos+r调出运行窗口,输入cmd,进入命令行窗口,输入以下命令。安装xlrd: pip install xlrd安装xlwt: pip install xlwtxlrd的API(applica_python 读取excel数据绘制曲线图
在linux上格式化一个磁盘分区时,出现如下错误 root@d:~# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (11-May-2015) mkfs.ext4: inode_size (128) * inodes_count (0) too big for a filesystem with 0 blocks, spec...
云服务器能自己装系统吗 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用)使用远程桌面连接MSTSC方式进行数据传输。该方式不支持断点续传,可能存在传输中断的情况,因此不建议上传大文简要介绍Oases是一..._云服务器可以安装自己的系统吗
组合数学1.1 加法原理、乘法原理在组合数学中,加法原理和乘法原理是两条基本定理。加法原理 如果解的集合可以划分成若干非空子集,则解可以表示为这些子集的并集。通俗来讲,就是一个问题的答案可以分成若干互不重叠的类,求出来每一类的答案,它们的和即为原问题的答案。例1:某班有20名男生,30名女生,问该班有多少学生? 答案为:20+30=50例2:从重庆去武汉有许多交通工具可以选择。如果坐飞机,有25个航班;如果坐火车,有16个车次;如果坐轮船,有4个航班。如果只允许坐飞机、火车和轮船之一,从重庆到
为什么80%的码农都做不了架构师?>>> ...
找了网上很多地方,最近的也是2019年的,过时了。笔者根据网上一些论坛的提示,摸索到了现在版本的打开方式。打开米家(我的版本为5.6.81),在我的设备里点击网关(我的为绿米空调伴侣增强版)2. 点击右上角三个点图标“…”3. 点击“功能设置”4. 狂点下面的“插件版本”,直到出现图中的“局域网通信协议”和“网关信息”5. 分别点进去就能看到你想要的了。局域网通信协议里的“密码”就是接入home assistant要用到的16位Key了,当然了,要把上面那个开关打开。..._小米网关key
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。4.A将这个消息发给B(已经用B的公钥加密消息)。5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
package com.gnt.lgy.base.util;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.util.Set;import javax.management.MBeanServer;import javax.management.Malfor..._java获取weblogic服务端口