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 ?

解决方案 »

  1.   

    这个char是字符型
    通过强制转换可以把88转为ascii码对应的字符X
    char c = 'x';
    int i = (int)c;这样可以把字符转为对应的ascii码
      

  2.   

    如果楼主有C/C++背景的话最好注意下此char非彼char,甚至是完全不同的
    C#声称内部采用UTF8的格式,每个char占用2byte,但我实际跟踪发现好像占4byte(这个还不太确定,可能有平台和编译选项有关)
      

  3.   

    无关...存储是UTF-8...但char(包括string)是UTF-16...多看MSDN...
      

  4.   

    这个char是字符型 
    通过强制转换可以把88转为ascii码对应的字符X 
    char c = 'x';
    int i = (int)c;
    这样可以把字符转为对应的ascii码 
    就是说变回 88  是吗?
      

  5.   


    char c = 'X';//注意是大写的X
    int i = (int)c;
      

  6.   


    你的变回就是通过强制转换可以把88转为ascii码对应的字符X 
    http://blog.csdn.net/bianchenglangzi_110/archive/2008/03/24/2214602.aspx
    你可以去参照下ascii码表