C#学习日记08---数据类型 之 字符类型
来源:互联网 发布:网络阅卷成绩 编辑:程序博客网 时间:2024/06/06 00:07
数值类型 之 字符类型:
计算机处理的信息中除了数字以外,主要就是字符了,字符包括数字字符、英文字符、表达式符号、等等;C#提供的字符类型按照国际上的公认标准,采用Unicode字符集,一个标准的Unicode字符长度为16位,用它可以表示世界上的很多语言。C# 中给字符变量赋值与C/C++类似:
Char ch = 'H'; 有时候当我们录入人的姓名的时候也用的 Char 型,比如 之前的日记03当中我就用 char sex;来录入我的性别,这么说来一个汉字也是一个字符了??是的,一个汉字占2个字节,1个字节是8位,换算下,一个汉字刚好就16位了,因此算一个字符;所以 char sex = '男' 是合法编译。
另外,我们还可以直接通过十六进制转义 或 Unicode表示法给字符变量赋值,例如:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) { char c = '\x0032'; //\x 是16进制转义符号 此时的32是16进制下的32 char d = '\u0032'; //\u 下的32代表Unicode的一个编码 Console.WriteLine("c = {0}\td = {1}",c,d); } }}
运行一下 :
所以 以上的赋值 与 char c = '2' char d = '2'是一样的;
本着一颗勇于探索的心,我对上面的代码又进行了一番探索。\u0032表示的是在Unicode下编码为0032的字符,\x0032表示的是16进制下的0032,对比发现Unicode的编码就是16进制下的数值,我试着将代码改为如下:
char c = '\x0033';
char d = '\u0034';
我猜想结果会是 c=3 d=4; 运行结果正是这样,以上成立。
本着胡思乱想的精神,我又想起了学习C的时候用的ASCII码值,会不会ASCLII 码值与Unicode码值是一样的呢?我找到了那本C语言教材,查询到2的ASCII十进制码值是50不是32,,由于以上的猜想成立32是16进制下的32我把它转化为10进制是多少呢???(这可就考到我了,当初老师讲进制转换时,我……唉!不说了,“书到用时方恨少啊!” ),不过我们可以用C#写一个进制转化的程序来计算下,代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) { Console.Write("请输入一个十六进制数:"); string x = Console.ReadLine(); Console.WriteLine("十六进制 {0} 的十进制数表示为:{1}", x, Convert.ToInt32(x, 16)); // Convert.ToInt32(x, 16) 将16进制中x转化为10进制,int类型就是十进制; Console.WriteLine("十进制 50 的十六进制数表示为:{0}", Convert.ToString(50,16));//Convert.TonString(50,16)进制转换 或者 可用 int a = 50; a.ToString("X"); } }}
结果是这样:
果然十六进制下的ASCII码值与Unicode的字符码值是相等的,经过查阅资料可以知道:
ASCLL码全是英文及一些特殊符号(制表符等),
Unicode中不仅有英文和特殊符号,还有日文、韩文、中文……
现在一般用Unicode(这也是为什么日记04中C#支持用中文命名变量了的原因了)
和C/C++一样,在C#中仍然存在着转义符,用来在程序中代指特殊的控制字符……
转义符
\'
垂直制表
可能会不知道 \a 举个例子 Console.WriteLine("\a\a"); 会发出2声 “嘀”的声音,你试试……
字符类型的介绍就在这里了,最后本着消灭所有疑问的目的,我想搞清楚如何用C/C++编写进制转换,看来还得去请教老师了。
(如果有什么错误的地方望各位大神指点,定会感激不尽!!!!)
- C#学习日记08---数据类型 之 字符类型
- C#学习日记04---数据类型 之 整数类型
- C#学习日记05---数据类型 之 布尔类型
- C#学习日记06---数据类型 之 浮点数类型
- C#学习日记07---数据类型 之 decimal类型
- C#学习日记09---数据类型 之 结构(Struct)类型
- C#学习日记11---数据类型 之 枚举(enum)类型
- C#学习日记12---数据类型 之 引用类型(前言)
- C#学习日记19----引用类型 之 委托(Delegate) 类型
- C#学习日记03---数据类型
- C#学习日记14---引用类型 之 object类
- C#学习日记16---引用类型 之 数组
- C#数据类型之引用类型
- C#学习日记-字符与字符串
- C#学习日记15----引用类型 之 string类型用法总结
- 黑马程序员——C#语言学习日记之基本数据类型
- 【MySQL数据类型3之--字符类型】
- 黑马程序员_学习日记1_有关C#基础知识总结归纳之对象和类型
- LintCode 数组剔除元素后的乘积
- 弱校联盟国庆第一天 I题
- 夕拾-数据结构-直接插入&希尔排序
- Valid Sudoku
- 用KVO监听实现collectionView滚动一致,完整项目movie
- C#学习日记08---数据类型 之 字符类型
- 红黑的插入java版本
- Android---Unable to execute dex: Multiple dex files define Landroid/support/annotation/AnimRes;
- 二进制中有多少个1
- iOS图文攻略之UIView 属性
- 桶排序java版本
- Picasso分析04
- 希尔排序
- hdu 1010 tempter of the bone