int val; // базовый тип для хранения данных
public Nybble { val =0; }
public Nybble(int i) { val = i;
val = val & OxF; // сохранить 4 младших разряда} •
// Перегрузить бинарный оператор + для сложения двух объектов типа Nybble, public static Nybble operator +(Nybble opl, Nybble op2)
{
Nybble result = new Nybble ; result.val = opl.val + op2.val;
result.val = result.val & OxF; // сохранить 4 младших разряда return result;
}
// Перегрузить бинарный оператор + для сложения
// объекта типа Nybble и значения типа int.
public static Nybble operator + (Nybble opl, int op2)
{
Nybble result = new Nybble ; result.val = opl.val + op2;
result.val = result.val & OxF; // сохранить 4 младших разряда return result;
}
// Перегрузить бинарный оператор + для сложения // значения типа int и объекта типа Nybble, public static Nybble operator +(int opl, Nybble op2)
{
Nybble result = new Nybble;
result.val = opl + op2.val;
result.val = result.val & OxF; // сохранить 4 младших разряда return result;
}
// Перегрузить оператор ++.
public static Nybble operator ++(Nybble op)
{
Nybble result = new Nybble; result.val = op.val + 1;
result.val = result.val & OxF; // сохранить 4 младших разряда return result;
}
// Перегрузить оператор >.
public static bool operator >(Nybble opl, Nybble op2)
{
if(opl.val > op2.val) return true; else return false;
}
// Перегрузить оператор <.
public static bool operator <(Nybble opl, Nybble op2)
{
if(opl.val < op2.val) return true; else return false;
}
// Преобразовать тип Nybble в тип int. public static implicit operator int (Nybble op)
{
return op.val;
}
// Преобразовать тип int в тип Nybble, public static implicit operator Nybble (int op)
{
return new Nybble(op);
}
class NybbleDemo { static void Main {
Nybble a = new Nybble(1);
Nybble b = new Nybble(10);
Nybble с = new Nybble; int t;
Console.WriteLine("a: " + (int) a); Console.WriteLine("b: " + (int) b);
if(а < b) Console.WriteLine("а меньше Ь\п");
//Сложить два объекта типаNybble, с =а+ b;
Console.WriteLine("с после операции с = а + b: " + (int) с);
// Сложить значение типа int с объектом типа Nybble, а += 5;
Console.WriteLine("а после операции а += 5: " + (int) а);
Console.WriteLine ;
// Использовать тип Nybble в выражении типа int. t = а * 2 + 3;
Console.WriteLine("Результат вычисления выражения а * 2 + 3: " + t); Console.WriteLine;
// Продемонстрировать присваивание значения типа int и переполнение, а = 19;
Console.WriteLine("Результат присваивания а = 19: " + (int) а);
Console.WriteLine ;
// Использовать тип Nybble для управления циклом.