• 3779阅读
  • 4回复

问一个弱弱的问题 [复制链接]

上一主题 下一主题
离线wuleeemail
 

只看楼主 倒序阅读 楼主  发表于: 2009-06-28
这几天在看QT的帮助文档,看到一个词:a byte array,意思应该是“一个字节阵列”。它来源于
QByteArray QByteArray::number ( int n, int base = 10 )   [static]的文档说明。
它还有一个例子:
  int   n = 63;
    QByteArray::number(n);              // returns "63"
我想不明白的是:这里a byte array 是一个字节的阵列,那么一个字节最大可以表示的数也就256,这里要是我要要显示的数超过256怎么办?在“a byte array”中“array”到底怎么理解?我想肯定是我没有理解!
有人能解释一下“byte array”到底什么意思?怎么使用好吗?
[ 此帖被wuleeemail在2009-06-28 21:50重新编辑 ]
离线shiroki

只看该作者 1楼 发表于: 2009-06-28
array不是数组吗?
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线wuleeemail

只看该作者 2楼 发表于: 2009-06-28
谢谢楼上的!array是数组的意思。只是我还是不明白这里a byte array 怎样工作的?比如:对于这样的数组,要表示257这个数字怎么表示?因为大于256了,所以要两个字节表示。第一个一个字节表示为FF,第二个是不是应该表示为01了?然后加起来?不对,肯定不对!
还是257本身就是用三个2、5、7来表示的?
                   QByteArray a;            
                                     a.resize(3);    
                                      a[0] = 0x2;  
                                       a[1] = 0x5;  
                                        a[2] = 0x7;
                                   知道的能不能说一下?  
离线allblue

只看该作者 3楼 发表于: 2009-06-29
昨天就看了你的问题,但是不知道什么意思,今天看了你的补充,觉得问题好像出在对数字表示方法的理解上,我觉得用字节数组表示257可以说有很多种方法,
  1.用2个字节,表示257:高位,低位=0x0101;
    2.用ASCII码表示 自己查ascii表
  3.用bcd码表示
  4.或者用自定义映射表对应。
  等等,这个在定制通讯协议时 很有用。可能楼主也是在制定协议呢,嘿嘿。小弟有说的不对的各位指点啊,嘿嘿。
黑暗魔法
离线wuleeemail

只看该作者 4楼 发表于: 2009-06-29
谢谢楼上的!
看样子还是我没有理解QByteArray的使用。这里这个类的对象是一个char * str,那么我这里的257就是一个字符串,而不是int类型。所以这里应该写成:QByteArray  a="257";
                                                                                                  a.resize(3);    
                                                                                                  a[0] = 0x02;  
                                                                                                  a[1] = 0x05;  
                                                                                                  a[2] = 0x07;
快速回复
限100 字节
 
上一个 下一个