b2b平台有哪些类型美国seo薪酬
一.数据在内存中的存储
我们上述,所介绍的数据类型,全部都可以分为两种, 分别⽤两个关键字对应。
超出范围数据的计算方法:
1.数据范围
char , 有符号类型, 占 1bytes。 可以表示负数,0,正数。范围 [-128~127] -128 ~ -1 0~127
unsigned char , ⽆符号类型,占 1bytes。可以表示 0,正数。范围 [0~255]
2.设计规则
⽆符号类型的数原码, 反码,补码是它本身. [正数和 0]
有符号类型的数的最⾼位表示符号位, 0 表示为正数,1 表示为负数
负数的反码 = 符号位不变,其他位按位取反
负数的补码 = 反码 + 1
3.计算方法
先计算整数的补码 (= 右边的数)
把补码赋值给变量,然后观察变量的数据类型。
若是为 unsinged char 类型,⼀定为正数或 0,原, 反, 补⼀样.%d 输出的原码就是补码。
直接转换为元素输出即可。
若是为 char 类型, 观察变量内存存储数据的最⾼位, 1 表示为负数,%d 输出需要转换为原码输出.
二. 数据类型的强制转换
强转类型: 采⽤某⽅式将某种数据类型强制转换位我们需要的数据类型.
注: 强转只是临时强转,本身的数据类型没有改变。
1.隐式转换
(1)不同类型整数进行运算,窄类型整数自动转换为宽类型整数,有符号整数转换为无符号整 数。
(2)不同类型浮点数进行运算,精度小的类型自动转换为精度大的类型。
(3)整数与浮点数进行运算,整数自动转换为浮点数。
// 整型提升
short s1 = 10;int n1 = 40000;// 运算过程中,变量 s1 是 short 类型,会自动转为 int 类型
printf("%d \n", s1 + n1);// 有符号整数自动转为无符号整数
// int n2 = 100;int n2 =-100;unsigned int n3 = 20;// 负数转为无符号整数,两者绝对值的和是无符号整数的最大值再加 1printf("%u \n", n2 + n3);// 不同类型的浮点数运算,精度低的转诶精度高的
float f1 = 1.25f;double d2 = 4.58667435;// printf("%f \t", f1);printf("%.10f\n", f1 + d2);// 整型与浮点型运算,整型转为浮点型
int n4 = 10;double d3 = 1.67;printf("%f", n4 + d3);
2.赋值过程中的自动类型转换
#include <stdio.h>int main(){// 赋值 窄类型赋值给宽类型
int a1 = 10;double a2 = a1;printf("%f \n", a2);// 赋值 宽类型赋值给窄类型
double b1 = 1.2;int b2 = b1;printf("%d", b2);return 0;}
3.强制类型转换(显式转换)
double d1 = 1.934;double d2 = 4.2;int num1 =(int)d1 + (int)d2; // d1转为1,d2转为4,结果是5int num2 =(int)(d1 + d2); // d1+d2=6.134,6.134转为6intnum3=(int)(3.5*10+6*1.5);//35.0+9.0=44.0->int=44printf("num1=%d \n", num1);printf("num2=%d \n", num2);printf("num3=%d \n", num3);//计算3个数字的平均数
int n1 = 12, n2 = 45, n3 = 19;//先求和
int total = n1 + n2 + n3;//用和除以数量
double avg = (double)total / 3;printf("%d、%d、%d三个数字的平均数:%.2f", n1, n2, n3, avg);