【数据类型的存储】符号扩展

本文详细解释了定点整数和定点小数的符号扩展过程,包括正数和负数在原码、反码和补码中的扩展规则。指出正数始终高位/低位补0,而负数原码添0,反码/补码添1。
摘要由CSDN通过智能技术生成

目录

引言

一、定点整数

1.正整数

2.负整数

二、定点小数

1.正小数

2.负整数

总结


ID:HL_5461

引言

符号扩展是指将一个短数据变为长数据,比如char变int,int变long。那么多出来的位要如何填充?这就是本文要讨论的问题。

本篇主要分为定点整数和定点小数讨论。以8位变16位为例


一、定点整数

1.正整数

以0,001 0100为例:

扩展前扩展后
原码0,001 01000,000 0000 0001 0100
反码0,001 01000,000 0000 0001 0100
补码0,001 01000,000 0000 0001 0100

正数原反补一样,都是高位补0。

2.负整数

以原码为1,001 0100为例:

扩展前扩展后
原码1,001 01001,000 0000 0001 0100
反码1,110 10111,111 1111 1110 1011
补码1,110 11001,111 1111 1110 1100

在符号位和数值位之间,原码添0,反码、补码添1。


二、定点小数

1.正小数

以0.001 0100为例:

扩展前扩展后
原码0.001 01000.001 0100 0000 0000
反码0.001 01000.001 0100 0000 0000
补码0.001 01000.001 0100 0000 0000

正数原反补一样,都是低位补0。(可类比10进制小数,如0.12 --> 0.1200)

2.负整数

以原码为1.001 0100为例:

扩展前扩展后
原码1,001 01001.001 0100 0000 0000
反码1,110 10111.110 1011 1111 1111
补码1,110 11001.110 1100 0000 0000

反码末尾添1,原码、补码添0。


总结

定点整数的符号扩展:

在原符号位和数值位中间添加新位,正数都添0,负数原码添0,负数反、补码添1。

定点小数的符号扩展:

在原符号位和数值位后面添加新位,正数都添0,负数原、补码添0,负数反码添1。

若有错误,欢迎大家批评斧正!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是兰兰呀~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值