int short型类型转换
变量值的存储
变量被定义以后,系统在运行时会为该变量分配一个相应大小的存储空间,称为存储单元。
给变量赋值后,该变量对应的存储单元中会存放该值,这个值称为变量的值。
那么变量的值在变量的存储单元中是如何表示的呢?
(1)整数是以补码的形式存放的。
(正数的补码是其本身,负数的补码为原码按位取反加1)
如:int a=2, b; b= -2; (这里int是2个字节)
a 00000000 00000010
b 11111111 11111110
2的原码表示:00000000 00000010
-2的补码表示:11111111 11111101+1=11111111 11111110
(2)特殊情况:最大、最小和0的存储
最大值:2^15-1(32767):
0 | 1111111 | 11111111 |
16 | 9~15 | 1~8 |
最小值:-2^15 (-32768)
1 | 0000000 | 00000000 |
16 | 9~15 | 1~8 |
0的存储如下:
0 |
0000000 |
00000000 |
16 |
9~15 |
1~8 |
(3)超出范围的情况(溢出)
①、阅读下面的程序段,程序段的输出结果是()
- int i=65536; printf(“%d”, i );
int i=65536; printf(“%d”, i );
- A)65536 B)0 C)有语法错误,无输出结果 D)1
- 说明:65536=216,即:1 00000000 00000000,第17位上为1,后面16位均为0。存储时只能存放16位,即16个0。故结果为0。
A)65536 B)0 C)有语法错误,无输出结果 D)1 说明:65536=216,即:1 00000000 00000000,第17位上为1,后面16位均为0。存储时只能存放16位,即16个0。故结果为0。
②、若有下面的程序段,则输出结果为()
- int a=32768; printf(“%d”, a);
int a=32768; printf(“%d”, a);
- 说明:32768=215,即 10000000 00000000,第16位上为1,后面15位均为0。存储时只能存放16位,最高位为1,故结果为-32768。
说明:32768=215,即 10000000 00000000,第16位上为1,后面15位均为0。存储时只能存放16位,最高位为1,故结果为-32768。
③、若有下面的程序段,则输出结果为()
- int a=65549; printf(“%d”,a); 已知65549=1 00000000 00001101B (13)
int a=65549; printf(“%d”,a); 已知65549=1 00000000 00001101B (13)
- int b=131069; printf(“%d”,a); 已知131069=1 11111111 11111101B (-3)
int b=131069; printf(“%d”,a); 已知131069=1 11111111 11111101B (-3)
题目:在32位计算机里
- int a = -65536;
- short b = a;
- a = b;
- a=?
int a = -65536;short b = a;a = b;a=?
在int存储中 -65536 = 10000000 00000000 00000000 00000000
所以short只取int后面两个字节。
a=0
如a=65533
则a = 00000000 00000000 11111111 11111101
b是有符号的short = 11111111 11111101 = -3
int short型类型转换相关推荐
- c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:
基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...
- Java中的byte[]/char[]/int/String数据类型转换
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51743969 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- Java黑皮书课后题第5章:*5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储。编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式,下面是运行示例
5.44(计算机体系结构:比特级的操作)一个short型值用16位比特存储.编写程序,提示用户输入一个short型的整数,然后显示这个整数的16比特形式 题目 题目概述 运行示例 资料与破题 原码反码 ...
- c++ 中关于int,unsigned int , short的关系与应用
int类型比较特殊,具体的字节数同机器字长和编译器有关.如果要保证移植性,尽量用__int16 __int32 __int64吧 __int16.__int32这种数据类型在所有平台下都分配相同的字节 ...
- C# 中int short Int16 Int32 Int64详解
Java中没有Int32,Int64,,只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: Int16 ...
- C#中int short Int16 Int32 Int64区别
Java中没有Int32,Int64,,java中只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: ...
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
//从网络中读取C的无符号int,short,byte字节数组,相应转换成java的long,char,short short anUnsignedByte = 0; char anUnsignedS ...
- null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外) 转载于:https://www.cnblogs.com/zhenmi ...
- int整型转字符串,字符串转整型valueof,
int整型转字符串(可以直接+号拼接整型和字符串,也可用调用包装类Integer中的parseInt方法将字符串转成整型,且第二种parseInt用的比较多) //将数值型字符串转为int整型 Str ...
最新文章
- 图片管理之获取图片列表数据
- day 0314函数的进阶
- 原版ubuntu中安装中文输入法
- [转]数据仓库,OLAP与数据挖掘之间的关系
- SL项目开发自定义控件封装之新建自定义控件类库
- b树删除节点每次只能删一个吗_深入理解数据库系统之存储存引擎(B树)
- struts+hibernate+oracle+easyui实现lazyout组件的简单案例——struts.xml配置详情
- 数据消费过程_特色鲜卤现捞加盟店经营要如何抓准消费群体定位
- Qt学习笔记-Qt Graphic View Framework
- ​Java Map中那些巧妙的设计
- 18. GD32F103C8T6入门教程-adc-使用教程5-定时器TIM2更新事件触发adc0
- 解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.
- rip协议中周期性广播路由信息的报文_关于RIP的一点小笔记--华为
- 计算机与软件水平考试中级,2020年计算机软件水平考试可以直接考中级吗
- PMP课程笔记:第11章 项目风险管理
- ITIL问题管理流程设计
- 用Python做一个美丽的每日计划
- 【学习笔记】密码学入门(2) 单向散列函数,消息认证码,数字签名,证书
- [解疑][TI]TI毫米波雷达系列(三):调频连续波雷达回波信号3DFFT处理原理(测距、测速、测角)
- PCL点云配准(ICP)