日期:2014-05-17  浏览次数:20840 次

请问,这个byte输出什么
byte b = (byte)8;
 Console.WriteLine(b);

请问,上面的输出结果是8,怎么会是8呢?byte不是代表一个字节吗?

------解决方案--------------------
肯定是8啊,byte是一种数据类型而已,你写8默认的是int类型,但是你把他显示的转换成了byte类型,又因为8没有超出byte的范围所以就是8啊
------解决方案--------------------
byte默认是10进制的,如果b=(byte)0x18,输出就是24.你原本是十进制的8,输出当然还是8
------解决方案--------------------
一个字节的范围是0—255,8在这个范围内,所以就是8;
byte b = (byte)256;这个在VS中编译是通不过的,因为超过了byte的范围。
int i=256;
byte b=(byte)i; 这个输出结果为0;
楼主可以自己多实验下,多思考下
------解决方案--------------------
C# code
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            byte b = (byte)8;
            Console.WriteLine(b);
            Console.Read();
        }
    }
}

------解决方案--------------------
Console.WriteLine对于数值型是按照原来的值输出的,你所谓的“byte不是代表一个字节吗”应该是指字符编码,也就是Ascii编码下面的字节表示,那么你至少要用char类型强制转换才能进行Ascii的对应转换。