类型转换
转换类型的方式有两种:自动转换和强制类型转换
强制类型转换:有编码者自己制定,把表达式的运算结果转换成所需要的数据类型
但不管时自动类型转换或时强制类型转换,他们都是临时的即仅当前语句有效
自动类型转换原则
-
占用内存字节少的(值域小)的类型,向占用内存字节数多的类型转换,以保证精度不降低
-
无符号和有符号参加运算,需要将有符号转换成无符号
-
int和double 参加运算,int将转换成double 类型
-
char和short类型参加运算,都会将自己转换成int类型
强制转换类型
(类型说明符)(表达式)
作用:
将表达式的运算结果强制转换成类型说明符所表示的类型
原码、反码、补码
计算机储存的数据都是补码
原码:计算机中对数字的二进制定点表示方法
123:原码 0111 1011
无符号数:
补码反码原码
有符号数
正数:
补码反码原码
负数
反码==原码符号位不变其他位按位取反
补码 == 反码+1
负数在计算机以补码的方式储存
非负数在计算机以原码的方式储存
补码的意义
1、统一了0的编码
+0补码:0000 0000
-0补码:0000 0000
2、将减法运算变成加法运算
假如没有补码:
10: 0000 1010
-6: 1000 0110
---------------
1001 0000 ----》-16
使用补码
10: 0000 1010
-6: 1111 1010
---------------
0000 0100 ----》4
对数据的存
负数在计算机上以补码的形式储存
非负数在计算机上以原码的方式储存
八进制数 以原码的形式储存
十六进制 以原码储存
对数据的取
如果是对 无符号变量 进行取值 ,输出内存的原样数据