【计算机组成原理】强制类型转换

强制类型转换

C语言中定点整数用“补码”存储的

1、有符号和无符号数相互转换,不改变数据,只改变解释方式。

short x = -4321 // short两个字节
这里的x的补码为:1110 1111 0001 1111
unsigned short y = (unsigned short)x;
而此时y的值就为:61215

2、长整型变为短整型的数,高位截断,保留低位

int a = 165537, b = -34991; // int 占四个字节
a: 0x000286a1 c:0xffff7751
short c=(short)a, d = (short)b;
转为short需要截断16个bit的高位数据。
a:0x86a1 d:0x7751

3、短整数变长整数,符号扩展(无符号扩展为“0”)

short x=-4321
x:0xef1f
x:1110 1111 0001 1111
int m=x;
m:1111 1111 1111 1111 1110 1111 0001 1111
unsigned short n = (unsigned short)x;
n:1110 1111 0001 1111
unsigned int p =n;
p:0000 0000 0000 0000 1110 1111 0001 1111


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值