using System;class Castem
{
public static void Main()
{
double x, y; // double(双精度浮点类型) 定义 X,Y
byte b; // byte(8位无符号整数) 定义B
int i; // int(32位宽度 -2147483648 - 2147483647) 定义i
char ch; // char(字符类型) 定义 CH
uint u; // uint(无符号整型) 定义U
short s; // short(短整型) 定义 S
long l; // long(8位有符号整数) 定义L x = 10.0; // double类型x 等于10.0
y = 3.0; // double类型y 等于3.0 i = (int)(x / y); // i等于 (double x, y 强制转变INT类型) 10.0乘3.0 = 3
Console.WriteLine("整数结果的X / Y: " + i); // 整数结果的X / Y = 3
Console.WriteLine(); // 空行 i = 255; // int类型等于 255
b = (byte) i; // B等于把255转变byte
Console.WriteLine("B在指派255: " + b + " -- 无数据丢失."); //B在指派255: 255 无数据丢失. i = 257;
b = (byte) i;
Console.WriteLine("B在指派257: " + b + " -- 数据丢失."); // B在指派257: 1 -- 数据丢失.
Console.WriteLine(); u = 32000;
s = (short) u;
Console.WriteLine("s在指派32000: " + s + " -- 无数据丢失."); // s在指派32000: 32000 无数据丢失. u = 64000;
s = (short) u;
Console.WriteLine("s在指派64000: " + s + " -- 数据丢失."); // s在指派64000: -1536 无数据丢失.
Console.WriteLine(); l = 64000;
u = (uint) l;
Console.WriteLine("u在指派64000: " + u + " -- 无数据丢失."); // u在指派64000: 64000 无数据丢失. l = -12;
u = (uint) l;
Console.WriteLine("u在指派 -12: " + u + " -- 数据丢失."); // u在指派 - 12: 4294967284 无数据丢失.
Console.WriteLine(); b = 88;
ch = (char) b;
Console.WriteLine("ch在指派 88: " + ch); // ch在指派88: x. }
}ch在指派88: x.为什么这里是 X ?
{
public static void Main()
{
double x, y; // double(双精度浮点类型) 定义 X,Y
byte b; // byte(8位无符号整数) 定义B
int i; // int(32位宽度 -2147483648 - 2147483647) 定义i
char ch; // char(字符类型) 定义 CH
uint u; // uint(无符号整型) 定义U
short s; // short(短整型) 定义 S
long l; // long(8位有符号整数) 定义L x = 10.0; // double类型x 等于10.0
y = 3.0; // double类型y 等于3.0 i = (int)(x / y); // i等于 (double x, y 强制转变INT类型) 10.0乘3.0 = 3
Console.WriteLine("整数结果的X / Y: " + i); // 整数结果的X / Y = 3
Console.WriteLine(); // 空行 i = 255; // int类型等于 255
b = (byte) i; // B等于把255转变byte
Console.WriteLine("B在指派255: " + b + " -- 无数据丢失."); //B在指派255: 255 无数据丢失. i = 257;
b = (byte) i;
Console.WriteLine("B在指派257: " + b + " -- 数据丢失."); // B在指派257: 1 -- 数据丢失.
Console.WriteLine(); u = 32000;
s = (short) u;
Console.WriteLine("s在指派32000: " + s + " -- 无数据丢失."); // s在指派32000: 32000 无数据丢失. u = 64000;
s = (short) u;
Console.WriteLine("s在指派64000: " + s + " -- 数据丢失."); // s在指派64000: -1536 无数据丢失.
Console.WriteLine(); l = 64000;
u = (uint) l;
Console.WriteLine("u在指派64000: " + u + " -- 无数据丢失."); // u在指派64000: 64000 无数据丢失. l = -12;
u = (uint) l;
Console.WriteLine("u在指派 -12: " + u + " -- 数据丢失."); // u在指派 - 12: 4294967284 无数据丢失.
Console.WriteLine(); b = 88;
ch = (char) b;
Console.WriteLine("ch在指派 88: " + ch); // ch在指派88: x. }
}ch在指派88: x.为什么这里是 X ?
通过强制转换可以把88转为ascii码对应的字符X
char c = 'x';
int i = (int)c;这样可以把字符转为对应的ascii码
C#声称内部采用UTF8的格式,每个char占用2byte,但我实际跟踪发现好像占4byte(这个还不太确定,可能有平台和编译选项有关)
通过强制转换可以把88转为ascii码对应的字符X
char c = 'x';
int i = (int)c;
这样可以把字符转为对应的ascii码
就是说变回 88 是吗?
char c = 'X';//注意是大写的X
int i = (int)c;
你的变回就是通过强制转换可以把88转为ascii码对应的字符X
http://blog.csdn.net/bianchenglangzi_110/archive/2008/03/24/2214602.aspx
你可以去参照下ascii码表