用windows自带的计算器实现十六进制有符号数的乘法运算 十六进制加减计算器

windows自带的计算器(简称calc),默认的操作数是64位的,第63位(从0开始数)表示操作数的符号,1表示负数,0表示正数。calc默认进行64位有符号数的四则运算,并且以补码的形式显示运算结果。因此,对于8位有符号数之间的四则运算,calc会自动理解成无符号数进行运算。如0x80*0x2,calc会理解成0x0000000000000080*0x0000000000000002进行运算,得到的结果是0x100。然后,我们的目的,是希望计算器理解成-128*2=-256,最终显示结果为0x8100(16位有符号数,原码)
原码、反码及补码的关系如下:
(正数)原=(正数)反=(正数)补
(正数)原=(~正数)反=(~正数+1)补
~正数为除最高位符号位外,其他位全部取反。
用windows自带的计算器实现十六进制有符号数的乘法运算 十六进制加减计算器
了解到这些之后,我们来用calc实现8位有符号数之间的四则运算0x80*0x2。
1.将calc选择到十六进制,输入80
2.将calc选择到十进制,这时显示为128,单击+/-键,将128转化成-128
3.再次将calc选择到十六进制,回到十六进制模式,单击*,表示进行乘法操作
4.输入2,单击=号,得到运行结果0xFFFFFFFFFFFFFFF0
一个很长的数,别被它吓到了,它其实是-256的64位补码形式。根据前面介绍的原码、反码及补码的关系,我们很容易将它转化成64位原码形式0x8000000000000100.
步骤如下:
1.在显示0xFFFFFFFFFFFFFFF0的界面下,单击-键,输入1,得到结果0xFFFFFFFFFFFFFEFF(反码)
2.单击Not键,得到原码0x100,注意,此处是对全部位都取反了,实际上我们要保留最高位符号位不变,因此,在0x100基础上,再加上符号位,最终得到原码0x8000000000000100.
从最后一步的操作可以看出,我们得到了最终结果0x100以后,可以将这个结果理解成任意位的符号数了,只要在相应的符号位上加上1,就得到了最终的原码。比如将0x100理解成16位有符号数,则原码为0x8100,若理解成32位有符号数,则原码为0x80000100。
虽然麻烦,不过,最终我们计算出来所期盼的结果,通过这个简陋的计算器。

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/198383.html

更多阅读

如何关闭系统自带的windows 防火墙。 系统自带防火墙有用吗

如何关闭系统自带的windows 防火墙。——简介现在网上有很多软件或者游戏SF之类的需要关闭系统自带的防火墙才能运行。这次教大家如何关闭电脑自带防火墙。(这里小编使用的是W7系统,关于XP系统的朋友其实两种方法都是大同小异,操作步骤

怎么删除手机本身自带的应用程序软件 乐视max2删除自带程序

怎么删除手机本身自带的应用程序软件——简介手机在出厂时,里面会安装很多装序那么要怎么才能册掉那些不用的程式呢!怎么删除手机本身自带的应用程序软件——方法/步骤怎么删除手机本身自带的应用程序软件 1、手机本手自带的程序的话

怎么用电脑自带的计算器计算乘方 乘方计算器

怎么用电脑自带的计算器计算乘方——简介电脑本身就自带一个计算器,可以帮助我们很方便地计算。怎么用电脑自带的计算器计算乘方——工具/原料电脑自带的计算器怎么用电脑自带的计算器计算乘方——方法/步骤

如何运用电脑自带画图工具画平面图 windows自带画图工具

如何运用电脑自带画图工具画平面图——简介 很多办公人员,因为工作的缘故,需要各种平面制图,但是又不会运用专业的autoCAD制图工具等专业画图工具,虽然工作上遇到需要制图,对制图上面的要求不是很高,图片上的长宽度也不要求很精确,但是对具

声明:《用windows自带的计算器实现十六进制有符号数的乘法运算 十六进制加减计算器》为网友穷生分享!如侵犯到您的合法权益请联系我们删除