C#中带示例的带符号字节数组

C#中的有符号字节数组

在C#.Net中,我们可以使用sbyte创建一个带符号的字节数组,sbyte用于存储-128到127(带符号的8位整数)范围内的两个值(负值和正值)。

每个元素占用1字节的内存,如果数组大小为10,则将占用10字节的内存。

声明一个有符号的字节[]

1)具有初始化的数组声明

    Syntax:	sbyte[] array_name = { byte1, byte2, byte2, ...};
    Example:	sbyte[] arr1 = { -128, -100, 0, 100, 127};

具有固定数量元素的阵列装饰

    Syntax:	sbyte[] array_name = new sbyte[value];
    Example:	sbyte[] arr2 = new sbyte[5];

3)带有用户输入的数组声明

    Syntax:	sbyte[] array_name = new sbyte[variable];
    Example:	sbyte[] arr3 = new sbyte[n];

访问带符号字节数组的元素

像其他类型的数组一样,我们可以使用其索引访问数组元素,索引以0开头,以n-1结尾。此处,n是数组元素的总数。

示例

考虑给定的示例–在这里,我们使用3种不同的方法声明3个数组,并使用默认值或用户输入来初始化数组。为了打印数组元素,我们使用了foreach循环,我们也可以使用带有循环计数器的for或while循环来访问数组元素。

using System;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            //declaring signed byte[] & initializing it with 5 elements
            sbyte[] arr1 = { -128, -100, 0, 100, 127 };

            //打印arr1的所有字节
            Console.WriteLine("arr1 items...");
            foreach (sbyte item in arr1)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine(); //打印一行 

            //声明5个元素的数组 
            //读取值并分配给数组 
            sbyte[] arr2 = new sbyte[5];
            //从用户那里读取值
            for (int loop = 0; loop < 5; loop++)
            {
                Console.Write("Enter a byte (b/w -128 to 127): ");
                arr2[loop] = sbyte.Parse(Console.ReadLine());
            }
            //打印arr2的所有字节
            Console.WriteLine("arr2 items...");
            foreach (sbyte item in arr2)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine(); //打印一行 

            //读取“ n”的值并声明“ n”个元素的数组"n" and declare array for "n" elements
            //读取值并分配给数组 
            Console.Write("Enter length of the array: ");
            int n = int.Parse(Console.ReadLine());
            //为n个元素声明数组
            sbyte[] arr3 = new sbyte[n];
            //从用户那里读取值
            for (int loop = 0; loop < n; loop++)
            {
                Console.Write("Enter a byte (b/w -128 to 127): ");
                arr3[loop] = sbyte.Parse(Console.ReadLine());
            }
            //打印arr3的所有字节
            Console.WriteLine("arr3 items...");
            foreach (sbyte item in arr3)
            {
                Console.WriteLine(item);
            }

            //按ENTER退出
            Console.ReadLine();
        }
    }
}

输出结果

arr1 items...
-128
-100
0
100
127

Enter a byte (b/w -128 to 127): 127
Enter a byte (b/w -128 to 127): 100
Enter a byte (b/w -128 to 127): -100
Enter a byte (b/w -128 to 127): 0
Enter a byte (b/w -128 to 127): 20
arr2 items...
127
100
-100
0
20

Enter length of the array: 3
Enter a byte (b/w -128 to 127): -128
Enter a byte (b/w -128 to 127): 0
Enter a byte (b/w -128 to 127): 127
arr3 items...
-128
0
127