zoukankan      html  css  js  c++  java
  • (C#基础) byte[] 之初始化, 赋值,转换。

    byte[] 之初始化赋值

    用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法。

    1. 创建一个长度为10的byte数组,并且其中每个byte的值为0.

    byte[] myByteArray = new byte[10];

    C# 在创建数值型(int, byte)数组时,会自动的把数组中的每个元素赋值为0.  (注:如果是string[], 则每个元素为的值为null. 

    2. 创建一个长度为10的byte数组,并且其中每个byte的值为0x08. 

    byte[] myByteArray = Enumerable.Repeat((byte)0x08, 10).ToArray();

    用linq来赋值,语句只要一条, 当然我们还可以赋值不同的,但是有一定规律的值。

    byte[] res= Enumerable.Range(1, 1000).Select(c=>Convert.ToByte(c)).ToArray();

     

    3. 直接赋值

    byte[] myByteArray = new byte[] { 0x01, 0x02, 0x03 };

    byte[] ---> ushort

                byte[] array = new byte[] { 0xFE, 0x00 };
    
                ushort register = BitConverter.ToUInt16(array, 0);

    上述转换后register 的值为 0x00FE

                byte[] array = new byte[] { 0x02, 0x01 ,0x04, 0x03 };
    
                ushort register = BitConverter.ToUInt16(array, 0);

    上述转化后,其实只是取了array[0], array[1].的值,最后register 的值是 0x00010002, 即258

    byte[] -> string

    public static string ByteArrayToString(byte[] ba)
    {
      string hex = BitConverter.ToString(ba);
      return hex.Replace("-","");
    }

    ushort ---> byte[]

                ushort register = 0x00F0;
    
                byte[] arr = BitConverter.GetBytes(register); 

    在PC系统里, arr[0] = 0xF0(地位), arr[1] = 0x00 . 

    互换ushort中的两个字节

                ushort number = 0x00F0;
    
                byte[] temp = BitConverter.GetBytes(number);
                Array.Reverse(temp); 
    
                ushort a = BitConverter.ToUInt16(temp, 0);
    
                ushort b = (ushort)(number << 8 | ((number & 0xFF00) >> 8));

    引自: http://www.cnblogs.com/fdyang/archive/2013/10/20/3378974.html

  • 相关阅读:
    运算放大器
    阻抗模型
    mysql优化
    tomcat调优
    jvm调优
    springboot使用
    deploy工程到nexus
    Spring data elasticsearch使用
    kibana使用
    笔记
  • 原文地址:https://www.cnblogs.com/icycore/p/3740986.html
Copyright © 2011-2022 走看看