如何在带符号的尾数中写入0xFA。我将其转换为二进制= 1111_1010。不知道从这里去哪里。
问题是“如果寄存器文件的总宽度为8位,则将以下内容写入带符号的尾数”。
另外,对签名的尾数的解释也很棒!
因此,显然,您需要使用的是一个字节类型未知的数据。
为了用带符号的尾数写一个数字(请参阅Significand),您可能希望您处理浮点类型,例如单精度或双精度。但是,您只有一个字节。
一单是8个字节,因此肯定不能是双是双重麻烦。另外一半需要16位。唯一的逻辑替代类型是SByte,但在那种情况下,您将永远不会获得小数点后带有尾数(有效数字)的任何数字。实际上没有小数。那么,也许这是一个棘手的问题?
如果继续使用SByte,则得到-6x10 ^ 0
以防万一您需要证明,或者对调试期间的外观感到好奇:
private void SByte2Dec()
{
sbyte convertsHexToSByte = Convert.ToSByte("0xFA", 16);
Single yourAnswer = Convert.ToSingle(convertsHexToSByte);
label1.Text = Convert.ToString(youranswer);
}
在此示例中,我有一个Windows窗体,上面只有label1。
然后我把SByte2Dec(); 就在InitializeComponent()下;
从答案倒退,很容易看到您的教授做了什么。他假设MSB是符号位,其余部分被视为7位整数。对此有一个先例,称为“符号幅度表示”,但在现代计算中并未使用。如今,几乎每个人都在使用Two的夸奖。
我认为这是一门初学者课程,而不是花很多时间来解释教授的两个称赞和数据类型的麻烦,而您的教授主要是试图使MSB成为一个标志。如果您了解整个符号,而对现代计算机硬件执行计算的方式一无所知,那么您可能会得出相同的答案。
我的猜测是,您的教授还以一种奇怪的方式对问题进行了措辞,如果您尝试使用Google的答案,那将使您迷路。如果想让他回来,问他“ 1000 0000”和“ 000 0000”之间的区别是什么。另外,如果您或班上其他任何人回答-6并且他认为错误,则应将他开除。那些学生若能自学两个人的称赞,应获得奖励积分。
您是否已阅读链接到“ Significand”的Wiki文章?要意识到的重要一点是“有符号尾数”不是数据类型。但是,在IEEE标准被广泛采用之前,有(很多?)许多不同的机器特定数据类型实现了自己的存储浮点数版本。这些早期数据类型通常称为DFP或十进制浮点数,而不是二进制浮点。阅读本文并获得更深入的了解。另外本文介绍的主题非常好。
正如我之前所说,如果您要在互联网上寻找答案,您的教授很可能会使用“签名尾数”一词来甩开您。显然,您应该阅读这两行之间的内容,并且知道他真正想要的是一种十进制浮点数或“ Signed Magnitude Representation”。
“签名的尾数” ≠互为称赞
“有符号尾数”应解释为某种形式的十进制浮点数,
其中,二进制补码是二进制浮点数的一种形式
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句