c# socket编程 byte[] cmd = new byte[4];为什么数组类型要用byte???其它类型不行吗??
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())的功能是什么???cmd[0] = 0x03;为什么不能写成cmd[0] = 3; ?????
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())的功能是什么???cmd[0] = 0x03;为什么不能写成cmd[0] = 3; ?????
你可以根据byte转换为其他类型
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())的功能是什么???
这个是根据dsM.Tables[0].Rows[i][1].ToString()字符串用ASCII编码方式获取byte[]cmd[0] = 0x03;为什么不能写成cmd[0] = 3; ?????
可以效果一样 0x03 表示16进数3 和10进3是一样的 都是3
但 0x10 是不能用 cmd[0]=10;的 0x表示16进数
BitConvert.To???()各种方法..
LZ对低层太不熟悉,多补补吧。
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString())
这个是类型转换用的得到一个byte[]
因为数据在计算机或网络上通信是以字节(8位二进制)流来进行的。
第二个问题
ASCIIEncoding.Default.GetBytes(dsM.Tables[0].Rows[i][1].ToString()) 是根据默认的编码方式(ASCII是一个字节表示一个字符,UNICode是两个字节表示一个字符。UTF-8是可变字节表示一个字符)第三个问题cmd[0] = 0x03;这是告诉计算,这是一个十六进制(引用一楼:可以效果一样 0x03 表示16进数3 和10进3是一样的 都是3
但 0x10 是不能用 cmd[0]=10;的 0x表示16进数 )
把byte数组换成int类型的可以吗??
可以。。