变量类型转换

xiaoxiao2021-02-28  98

变量类型转换

先来一道例题:

#include<stdio.h> int main() { char a=-1; char b=255; unsigned char c=-1; unsigned char d=255; int e=a; int f=b; int h=c; int i=d; unsigned int j=a; unsigned int k=b; unsigned int x=c; unsigned int y=d; printf("%d\n",a);//-1 printf("%d\n",b);//-1 printf("%d\n",c);//255 printf("%d\n",d);//255 printf("%d\n",e);//-1 printf("%d\n",f);//-1 printf("%d\n",h);//255 printf("%d\n",i);//255 printf("%d\n",j);//4294967295 printf("%d\n",k);//4294967295 printf("%d\n",x);//255 printf("%d\n",y);//255 }

知识点:

char : -128-127

unsigned :0-255

若不在此范围内,方法:绝对值相加等于256!!!

因此:

char a=-1;//在范围内,-1 char b=255;//不在范围内,-1 unsigned char c=-1;//不在范围内,255 unsigned char d=255;//在范围内,255 unsigned int j=a;//4294967295 unsigned int k=b;//4294967295

(-1)2=1111 1111 1111 1111 1111 1111 1111 1111

-1的unsigned int为最大值-1,即2的32次方

转载请注明原文地址: https://www.6miu.com/read-2625452.html

最新回复(0)