开发者社区> 流楚丶格念> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C语言中的强制类型转换与机组的联系

简介: C语言中的强制类型转换与机组的联系
+关注继续查看

测试代码块


void main(){
    // 1
    short x=-4321;          //short型占用2个字节
    unsigned short y=(unsigned short)x;
    
    // 2
    int a=165537, b=-34991;         //int型占用4个字节
    short c=(short)a, d=(short)b;   //short型占用2个字节
    
    // 3
    short x=-4321;
    int m=x;
    unsigned short n=(unsigned short)x;
    unsigned int p=n; 
}


研究与结论


代码1:


在代码1 中:


x:1110 1111 0001 1111 真值-4321


强制转化为无符号时变成:


y:1110 1111 0001 1111 真值61215


结论1:


无符号数与有符号数:


不改变数据内容,改变解释方式。


代码2:


int型占用4个字节


将int类型强制转化为short时:


short型占用2个字节


a b c d 结果:


a:0x000286a1    真值165537
c:0x86a1        真值-31071
b:0xffff7751    真值-34991
d:0x7751        真值30545


image


结论2:


长整数变短整数:


高位截断,保留低位。


代码3:


short x转化为int m ,因为 C 语言中定点整数是用“补码”存储的,所以前面补1。


image


short x转化为 无符号 n 真值发生改变


image


unsigned short n 转化成 unsigned int p ,无符号前面补0。


image


x:1110 1111 0001 1111
    16进制:0xef1f
m:1111 1111 1111 1111 1110 1111 0001 1111
    16进制:0xffffef1f 真值-4321
n:1110 1111 0001 1111 
    16进制:0xef1f 真值61215
p:0000 0000 0000 0000 1110 1111 0001 1111
    16进制:0x0000ef1f 真值61215


结论3:


短整数变长整数:


符号扩展。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C++的类型转换
C++的类型转换
13771 0
C语言之任意进制的转换
我们都知道转换进制是一个让人比较头疼的事情,下面我的代码不是最好的,也就仅仅是一个思路而已,至少我认为使用栈来进行进制转换是比较合适的一种方法,好了,不多叙述了。 #include #include /* 函数trans将无符号整数n翻译成d(2
614 0
C语言的类型提升
本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。 作者:gfree.wind@gmail.com 博客:linuxfocus.blog.chinaunix.net  每天都会看CU的博客,尤其是CU首页上面的博客。
821 0
C语言二维数组作为函数的参数
前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数。在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示。我写程序的错误如下程序所示: #include void print(int *a[3]) { printf("%d\n",a[0][...
962 0
SQL数据类型和C#数据类型间的转换
今天看到SQL数据类型和C#数据类型间的转换,前人留下的。 ...
979 0
+关注
流楚丶格念
csdn平台优质创作者,51cto TOP博主,360图书馆科技博主,燕山大学目前大三在读,日拱一卒,功不唐捐,加油!!!
1010
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载