bit (binary digit) 位
位是计算机数据中最小单元。位的值只会是0或1。虽然计算机也提供对位的判断和操作,但是计算机指令一般以字节为单位。在大多数的计算机系统中,八位是一个字节。一位的值通常以存储电容是否带电来衡量。
半个字节在英语中叫nibble。在一些系统中,octet代表8位,而不用字节;而在另一些系统中,octets组成32位字,在这些系统中,指令长度以全字(32位)或半字(16位)表示。
byte 关键字代表一种整型,该类型按下表所示存储值:
类型 范围 大小 .NET Framework 类型
byte 0 到 255 无符号 8 位整数 System.Byte
可如下例所示声明并初始化 byte 变量:
byte myByte = 255;
在以上声明中,整数 255 从 int 类型隐式转换为 byte 类型。如果整数超出了 byte 类型的范围,则将发生编译错误。
转换
存在从 byte 类型到 short、ushort、int、uint、long、ulong、float、double 或 decimal 类型的预定义隐式转换。
不能将存储大小更大的非文字数字类型隐式转换为 byte 类型(请参见整型表中有关整型存储大小的信息)。例如,请看以下两个 byte 变量 x 和 y:
byte x = 10, y = 20;
以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式默认情况下计算为 int。
byte z = x + y; // Error: conversion from int to byte
若要解决此问题,请使用强制转换:
byte z = (byte)(x + y); // OK: explicit conversion
但是,在目标变量具有相同或更大的存储大小时,使用下列语句是可能的:
int x = 10, y = 20;
int m = x + y;
long n = x + y;
同样,不存在浮点型到 byte 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:
byte x = 3.0; // Error: no implicit conversion from double
byte y = (byte)3.0; // OK: explicit conversion
调用重载方法时,必须使用显式转换。例如,请看以下使用 byte 和 int 类型参数的重载方法:
public static void MyMethod(int i) {}
public static void MyMethod(byte b) {}
使用 byte 显式转换可保证调用正确的类型,例如:
MyMethod(5); // Calling the method with the int parameter
MyMethod((byte)5); // Calling the method with the byte parameter
b=bit 表示“位”
B=Byte 表示“字节”
1 Byte=8 bit
一个字节( byte)可以存放八个二进制数字或一个字符(一个汉字占两个字节),1024个字节称为一个千字节,记为1KB;1024个千字节称为一个兆字节,记为1MB;1024个兆字节称为一个吉字节,记为1GB。