char a= 'c'; //a是字符串
int b = a; //输出c的ASCII码
如果反过来:
int a = 97;
char b = a; //会报错
如何判断是否报错?
转换后,容器是否足够(大的不能塞入小的)
解决方案:强制类型转换
char b = (char)a; //强制转换,但有可能丢失数据(抛弃多余部分)
char a= 'c'; //a是字符串
int b = a; //输出c的ASCII码
如果反过来:
int a = 97;
char b = a; //会报错
如何判断是否报错?
转换后,容器是否足够(大的不能塞入小的)
解决方案:强制类型转换
char b = (char)a; //强制转换,但有可能丢失数据(抛弃多余部分)
字符类型是根据字符类型进行输出
小容器可以赋值给大容器
强制类型转换:数字前加(类型)
每一个字符都是存储一个数字。比如说int b = a输出的是99,之所以是99,是因为ASCII字符代码中a对应99。
在写代码时,要容器对应,还要注意不要超过容量。
char b = (char)a 强制类型转换,如果是数据比容量大,强制类型转换能塞进去,但是这样会丢失一部分数据
char
类型是一个16位的Unicode字符,而int
类型是一个32位的有符号整数。因为char
类型的取值范围是0到65535,这是一个完全容纳于int
类型范围内的值,所以从char
到int
的转换是隐式的,编译器可以自动处理这种类型转换。
然而,short
类型是一个16位的有符号整数,它的取值范围是-32768到32767,而char
类型的取值范围是0到65535。尽管两者的位数相同,但它们的取值范围不完全重叠,因此char
到short
的转换被视为不安全的转换,需要显式地进行类型转换。
强制类型转换: (char)
qiang zhi类型转换
int b = 97;
char a = (char)b;
字符存储为数字
按十进制 字符c底层存储是99 a=97
ASCII字符代码表(十进制)
int a = 97;
char b = a;
赋值两边要一致,
赋值小容器的可以赋值给大容器
大容器无法赋值给小容器
char b = (char)a;//强制类型转换 强塞
using System;
namespace _004_字符类型
{
class Program
{
static void Main(string[] args)
{
//char a = 'c';
//int b = a;
//Console.WriteLine(a);
//Console.WriteLine(b);//99
//97 a
int a = 97;
char b = (char)a;//强制类型转换 强塞
Console.WriteLine(a);
Console.WriteLine(b);
}
}
}
字符类型和对应的整数
强制类型转换
int a = 97
char b = (char)a
每个字符本质是一个数字
字符类型和对应整数
1.当进行赋值时,“=”两侧的类型需要是一致的(char对char,int对int)
2.语法错误时,VS会报错提示,但如果是语法无误逻辑出错时,VS则无法报错提示
3.int的容量非常大,而char只有几百的容量,因此int无法直接赋值于char类型,但可以通过强制类型转换的方式执行,
如int a =97;char b = (char)a;
4.强制类型转换,若被赋值的容器小于赋值的容器,则会出现数值丢失的问题
字符类型需要用单引号‘引起来
每个字符都代表一组十进制数字
char的存储范围
将整数转化为字符:
1、强制类型转换 ()
一行一条语句,在语句的结束处加上;(需要在英文状态下)
\n后面有字符的都表示为特殊字符表示换行
如\nworld \n表示换行实例如下
Wold\nYoou运行以后则为
wold
you
\t表示四个字符实例如下
He\tllo 运行以后则为He llo(中间为四个空格)
char
ascll
A 65
a 97
强制类型转换
字符在计算机内被作为数字进行存储
字符可以当作整数使用,对应相关整数
字元變數要放整數變數要使用char,例如:
int a = 97;
char b = (char)a;
强制类型转换
int a=97;
char
加入分号自动格式化加空格
变量赋值给变量需同类型
字符c对应99 ASCii表
代码会自动加格式化(空格)
一个引号里只能有一个字符
每一个字符在底层存储的时候都是作为一个整数来存储的
赋值时两边的类型要一致,因为字符类型可以作为整数类型所以可以把字符变量赋值给整数
但是整数变量无法赋值给字符,因为容器小的可以赋值给容器大的,而容器大的不能赋值给容器小的