技术标签: FPGA
二进制原码:
最高位为符号位,最高位为0时表示正数,为1时表示负数,如:
1111 1111 = -127 ; 0111 1111 = 127
此时称为原码(true form),但原码不能直接参与运算,如:
1000 0001 = -1
0000 0001 = 1
-1 + 1 = 1000 0001 + 0000 0001 = 1000 0010 = -2
1
2
3
这显然是错误的,此外可以发现原码中有两种0:
0000 0000 = +0 ; 1000 0000 = -0
因此计算机中采用补码(complement)来表示有符号整数。
首先引出模的概念:
模为一个计量系统的计数范围。如时钟的表示范围为00:00:00 – 11:59:59,故时钟的模为12:00:00。有模的计量器均可以化减法为加法,如若想从10点调整到6点,既可以倒拨4个小时,也可以正拨8个小时。
Byte型数据有8位,则不考虑符号时,其能表示的最大数值为1111 1111(255),+1后为1 0000 0000,最高位溢出,归零。故byte型数据的模则为256(2828)
补码的定义:
对于正整数来说,原码即补码;
对于负整数来说,其补码与其绝对值的原码相加,和为模(2n2n);
补码中0的表示方法只有一种:0000 0000;
强制规定原码的-0(仅最高位为1,其他位全为0)的值为最小的负数,即−2(n−1)−2(n−1)。如byte型数据中,1000 0000 = -128(−27−27);
补码再求补码,等于该整数本身;
补码的计算:
对于正整数,原码即补码;
对于负整数,补码的求法为取其绝对值的二进制,按位取反后+1,即求得其补码。如以byte型数据为例,求-7的补码:
先取得7的二进制:0000 0111 = 7
按位取反: 1111 1000
再加1:1111 1001 即为-7的补码
对负数求补码的算法的代数证明:
由补码定义可知,一个负整数的补码与其绝对值的原码(由于是正数,即为补码),和为模。对于一个n位的二进制数来说,模为2n2n。
设一个负数A−A−,其二进制原码为 1 kn−2 kn−3 … k1 k01 kn−2 kn−3 … k1 k0,则其绝对值A+A+的二进制原码/补码为 0 kn−2 kn−3 … k1 k00 kn−2 kn−3 … k1 k0。其十进制的值即为:
A+=0∗2n−1+kn−2∗2n−2+kn−3∗2n−3+ ... +k1∗21+k0∗20
A+=0∗2n−1+kn−2∗2n−2+kn−3∗2n−3+ ... +k1∗21+k0∗20
按照负整数补码求法,要将其绝对值的原码/补码先按位取反再+1(AC=∼A++1AC=∼A++1)。对于二进制来说,每一位非0即1,即使当前位为未知的x,按位取反也可用(1-x)表示。则A+A+按位取反后二进制为1 (1−kn−2) (1−kn−3) … (1−k1) (1−k0)1 (1−kn−2) (1−kn−3) … (1−k1) (1−k0),十进制表示方法为:
∼A+=1∗2n−1+(1−kn−2)∗2n−2+(1−kn−3)∗2n−3+ ... +(1−k1)∗21+(1−k0)∗20=(2n−1+2n−2+ ... +20) − (2n−2∗kn−2+2n−3∗kn−3+ ... +21∗k1+20∗k0)=2n−1−A+⇒(∼A++1)+A+=2n⇒AC+A+=2n
∼A+=1∗2n−1+(1−kn−2)∗2n−2+(1−kn−3)∗2n−3+ ... +(1−k1)∗21+(1−k0)∗20=(2n−1+2n−2+ ... +20) − (2n−2∗kn−2+2n−3∗kn−3+ ... +21∗k1+20∗k0)=2n−1−A+⇒(∼A++1)+A+=2n⇒AC+A+=2n
即该负整数的补码与其绝对值的原码/补码相加等于模,完全符合补码的定义。证毕!
求原码:
对于正整数,原码即补码;
对于负整数,最高位为符号位,保持为1不变,其他位按位取反+1,即求得补码;
---------------------
作者:水蓝城城主
来源:CSDN
原文:https://blog.csdn.net/mrliuzhao/article/details/79769280
版权声明:本文为博主原创文章,转载请附上博文链接!
电脑有两个常用且重要的组成部分,分别为内存与硬盘,都是用来存储数据的。不同点在于,内存是用来存储动态数据的,硬盘是用来存储静态数据。静态数据:静态数据是指一些永久性的数据,一般储存在硬盘中。储存空间大,普通计算机的硬盘有500G左右,因此可以存放比较大的文件。储存的时长:只要不主动删除或硬盘损坏数据永远都在。哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。动态数据:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。储存空间小,一般普通计.
② 查看inode和目录项缓存[28]slab是Linux操作系统的一种内存分配机制,slab分配算法采用cache存储内核对象。slab缓存、从缓存中分配和释放对象然后销毁缓存的过程必须要定义一个kmem_cache对象,然后对其进行初始化这个特定的缓存包含32字节的对象。可以通过运行cat /proc/slabinfo |grep -E '^#|dentry|inode'命令来查看所有目录项和各种文件系统索引节点的缓存情况。# cat/proc/slabinfo | grep -E '^#|d
原文链接:www.zhihu.com一、引子这是关于一把玄铁重剑,一本经书,和一套轻功步法的故事。让我们先从普通程序猿们的日常工作内容说起,一般来说,程序猿们大部分时间关注的可能不是研发某个具体算法,这是算法工程师/数学家们擅长的东东。程序猿的工作主要是通过调用编程环境中现成的工具函数或接口来实现具体的应用功能,将各个底层接口或算法模块用代码有秩序地拼装联接起来,实现酷炫好用的产品功能,如同组装一...
转自:https://blog.csdn.net/dstjwjw/article/details/83896312GCN介绍.png参考文献[1]Blog poston graph convolutional networks by Thomas Kipf.[2]Papercalled Semi-Supervised Classification with Grap...
场景:tablayout绑定viewpager,viewpager嵌套fragement,其中一个fragment中嵌套了一个子viewpager,导致不能正常滑动。解决方法:重写viewpager的canScroll()方法。 @Override protected boolean canScroll(View v, boolean checkV, int dx, int x, i...
题库来源:安全生产模拟考试一点通公众号小程序胺基化工艺新版试题考前必练!安全生产模拟考试一点通每个月更新胺基化工艺实操考试视频题目及答案!多做几遍,其实通过胺基化工艺理论考试很简单。1、【单选题】压力容器操作人员应定时、定点、( )巡回检查。( B )A、定人员B、定线C、定设备2、【单选题】《工作场所有毒气体检测报警装置设置规范》:“室外”检测报警点设在与有毒气体释放点距离( )m以内。( B )A、1B、2C、33、【单选题】特别适用于高温、高压、高粘度、有毒、有害、强腐蚀性
本文主要介绍我调试devstack安装部署openstack的经历需求如下:openstack通过devstack部署无法使得内部虚拟机和外部其他机器ping通。我试图在opentack虚拟机上搭建4g核心网,并将enb部署在其他物理机上,所以需要保证虚拟机和物理机之间的通信。解决方案devstack关于network的官网教程+手动配置路由表。https://docs.openstack.org/devstack/latest/networking.html环境openstack的主机采用
工业和研究中数据的大幅增长为计算机科学带来了巨大的机会与挑战。由于数据大小超过了单台机器的能力,用户需要新的系统将计算扩展到多个节点。因此,针对不同计算工作负载的新集群编程模型已呈爆炸式增长。图1这些模型相对专业化。例如支持批处理的MapReduce,支持迭代图算法的Dreme。在开源Apache Hadoop堆栈中,类似Storm和Impala的系统也是特有的。即使在关系数据库世界中,“一刀切”...
周末突然想学学 Python,于是尝试在 SUSE 虚拟机上安装个 Python 玩玩。经过 ./configure, make, make install 安装成功后,启动 Python, 但是却提示 “no module named readline”, 并且从 XShell 登录进 Python 还不能使用退格键删除。于是重新下了一个 readline 编译安装,结果还是不管用。
先说说什么是打包部署和发布,对于c/s模式打包就是把我们的程序打成压缩包,打包将行李入包,发布是将打好的包展开. 这样的好处一是保护版权和安装方面,二是打包会把cs文件编译成为dll文件,第一次运行的速度快,同时保护代码.三是打包发布可以节省控件,基本解决了安全性的问题,使得程序员的原codes不被泄漏. 说说打包和发布的区别,发布是没有安装文件的,要求服务器上必须安装上一个fr
需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。 这是对本章的一个小总结:(点击进入大图) 先确定综合需求,分析需求,做模型,根据需求找到合适的方法和工具,好的团队小组去开发软件。 数据流图:是图形化表示,系统分析员与永不需求的表示实现。通过数据流图能更清晰的看出系统的
1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri); 2,地图 Uri mapUri = Uri.parse("geo:38.899533,-77.036476"); returnIt = new Intent(