把常量定义成$80000001代表 什么意思,为什么要这么定义?(100分)

  • 主题发起人 主题发起人 lixiaohui
  • 开始时间 开始时间
L

lixiaohui

Unregistered / Unconfirmed
GUEST, unregistred user!
看联通SGIP的DELPHI源码中看到
const
//The Version of SGIP
INTERFACE_VERSION = $33;
//Defines the encoding scheme of the short message user data.
CODE_TYPE_ENGLISH = 0;//0
CODE_TYPE_CHINESE = 15;//8;
//The set of SGIP Command IDs and their associated values are defined in the following table;
BIND = $1;
BIND_RESP = $80000001;
UNBIND = $2;
UNBIND_RESP = $80000002;
SUBMIT = $3;
SUBMIT_RESP = $80000003;
DELIVER = $4;
DELIVER_RESP = $80000004;
REPORT = $5;
REPORT_RESP = $80000005;
CHECKUSER = $10;
CHECKUSER_RESP = $80000010;
USERRPT = $11;
USERRPT_RESP = $80000011;
TRACE = $1000;
TRACE_RESP = $80001000;
请问为什么要定义$80000011,这里面的$是什么意思?谢谢
 
$80000001; $ 表示为十六进制数
$80000001 应该跟硬件的指令有关,看看硬件返回的协议就知道了.
 
$表示是16进制数。
定义这些只是系统本身需要的一些常量而已,
 
这么大的16进制数也是为了避免重复
 
是的,就是一个十六进制常量.
 
16进制常量,和通讯协议有关,值本身没有太大意义,只是为了处理协议之间的通讯。
 
to--kk2000
0x00000001
0x80000001
SGIP文档中有对commandid的这样的定义,是不是就是你说的硬件返回协议呢?
 
9494
BIND = $1; 对应: 0x00000001 OK
 
0x00000001
0x80000001
是表示程序存储地址吗,这是个什么类型的数据
如果消息BIND的commandid是0x00000001,是不是必须把
BIND定义为$00000001或者$1?
这之间的联系依据是什么?
 
任何数都可以定义常量。只是一些数是系统用的
 
哎! 怎么说呢! 0x 和 $ 是不同语言使用不同的标志符来表示的.
当然也可以拿来表示在32位系统下的地址, 本来在汇编里面使用得
更多的应该是使用 0x 来表示十六进制的.

这之间的联系依据是什么? 就是他们的值是相等的.
老兄还是那本进制书来复习复习吧!
 
一正一负,方便使用而已
 
谢谢各位,我找些这方面的书再看看吧
 
如果是对应硬件的,最高位可能是存储器地址片选或是某个开关量,具体的要看硬件的协议了
 
后退
顶部