博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.4变量和数据类型进阶
阅读量:6965 次
发布时间:2019-06-27

本文共 1533 字,大约阅读时间需要 5 分钟。

hot3.png

1.4变量和数据类型进阶

有符号整数和无符号整数

  • short、int、long、long long类型的变量,可以表示正数,也可以表示负数,称为有符号的整数类型。
  • unsigned short、unsigned int、unsigned long、unsigned long long类型的变量,只会被看作非负数,称为无符号的整数类型。

有符号整数的表示方式

  • 将最左边的位(最高位)看作“符号位”。 符号位为0,则表示是非负数,其绝对值就是除符号位以外的部分; 符号位为1,则表示是负数,其绝对值是所有位取反(0变1,1变0)后再加1。
  • 将一个负整数表示为二进制的方法:
  1. 设置符号位为1
  2. 其余位等于绝对值取反再加1 。

| 整数 | 表示成short时的二进制形式 | 十六进制形式 | | 0 | 0000 0000 0000 0000 | 0000 | | 1 | 0000 0000 0000 0001 | 0001 | | 257 | 0000 0001 0000 0001 | 0101 | | 32767 | 0111 1111 1111 1111 | 7FFF | | -32768 | 1000 0000 0000 0000 | 8000 | | -1 | 1111 1111 1111 1111 | FFFF | | -2 | 1111 1111 1111 1110 | FFFE | | -257 | 1111 1110 1111 1111 | FEFF |

数据类型的自动转换

  • 有些不同的数据类型之间是相容的,可以互相赋值,这叫数据类型的自动转换
int a = 11.34; // 11.34被自动截取小数部分,转换为11后赋值给aint b = 30;double d = b; // d的值是30.0

字符类型到整型的互相转换

  • 字符型数据可以转换成整型数据
int  k = 'a'; //k的内容变为'a'的ASCII码,即97printf("%d", k); //输出:97
  • 整型数据也可以转换为字符型数据,但只会留下最右边的那个字节(第0位到第7位),其他字节被丢弃
int n = 98;char k = n; //k的内容变为98,98时字符'b'的ASCII码printf("%c", k); //输出:b

类型自动转换示例

#include 
#include
using namespace std;int main(){I int n1 = 1378; //1378的十六进制形式是 0x562 short n2; char c = 'a'; double d1 = 7.809; double d2; n2 = c+1; //n2变为98,97是'a'的ASCII码 printf("c=%c, n2=%d\n", c, n2); //输出 c=a, n2=98 c = n1; printf("c=%c, n1=%d\n", c, n1); //输出:c=b, n1=1378 n1 = d1; //d1=7.808,去掉小数部分后赋值给n1,n1变为7 printf("n1=%d\n", n1); // 输出 n1=7 d2 = n1; // d2变为7 printf("d2=%f\n", d2); //输出 d2=7.000000 return 0;}/* Output:c=a, n2=98c=b, n1=1378n1=7d2=7.000000*/

转载于:https://my.oschina.net/u/553266/blog/1586537

你可能感兴趣的文章
全面解读:腾讯 CDB 内核特性与优化实践
查看>>
Mac下的比较器工具DeltaWalker的试用期延长法
查看>>
PHP命名空间的使用规则
查看>>
ubuntu root下的无密码登陆
查看>>
Spads 公式解析系统 - Java
查看>>
CSS初始化样式
查看>>
[实战] 用数人云,部署弹性 ELK 集群就五步
查看>>
关于CI的服务器与最佳实践,这里有一些思考
查看>>
使用json-lib实现json to javabean
查看>>
sqlserver数据库类型对应Java中的数据类型
查看>>
nova-scheduler详解 openstack-ice版
查看>>
安卓开发屏幕分辨率尺寸适配问题【原创】
查看>>
DUILIB中获取flash,webbrowser control的方法
查看>>
微信小应用,又一大神,音乐播放器
查看>>
sp存复杂对象
查看>>
第2条 遇到多个构造器参数时要考虑构建器
查看>>
Android Eclipse JNI 调用 .so文件加载问题
查看>>
JRE和JDK的区别分别代表什么
查看>>
AndroidManifest.xml配置详解
查看>>
sbt+Scala IDE建立Scala项目
查看>>