进制转换与整型提升的秘密

1.进制转换

进制转换与整型提升的秘密_第1张图片

不断的除二余二,知道最后的数字比二小就停下,然后从下往上读出数字就可以啦。

进制转换与整型提升的秘密_第2张图片

同样,不断的除16余16,知道最后的数字比16小就停下,然后从下往上读出数字就可以啦。

 其他进制同理哦。

不难看出进制的转换是有规律的

2.原、反、补

然后我们来了解原码、反码、补码:

我们拿八个比特位的-3来举例子吧-->10000011

源码

10000011

反码

**正数**的反码、补码**不变**

反码是**负数**的源码除**符号位不变**,其他位置反:11111100

补码

补码=反码+1:11111101

(tips:我们伟大的先辈们规定-128的补码为10000000)

tips:1.原码到补码有一种方法

原码取反再+1

2.补码到原码有两种方法

1.补码-1再取反

2.补码取反再+1

3.不同类型运算

 (1).隐式转换(自动类型提升)

把一个取值范围**小的**转换成取值范围**大的**。

byte->short->int->long->float->double

(1)取值范围**小的**和取值范围**大的**进行运算,小的会提升为大的,再进行运算。

`int a=10;`

`double b=20.0;`

`c=a+b;`**c为double类型**

(2)byte short char 三种类型的数据在进行运算是,都会直接提升为int,然后再进行运算。

`byte a=10;`

`byte b=20;`

`c=a+b;`**c为int类型**

(2).强制转换

目标类型数据 类型名=(目标类型数据)被强转的数据;

`double a=12.3;`

`int b=(int) a;`

在位数过大时有可能出错。

4.大小端存储

我们举0x11223344为例

          0x11223344

地址:高-------->低

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;

小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。

现在大家应该对以上内容有一定理解,那么下期见吧。

你可能感兴趣的:(算法,开发语言,c语言)