望各位大侠赐教。谢谢!!!!
17 个解决方案
#1
大侠救命啊!
#2
什么叫压缩型的16进制~~麻烦解释下先:)
#3
其实我也不太清楚。具体是跟另外一个系统做接口,它有一项是什么压缩型的,它的长度只有两位,但我要送给它的数却是3512,怎么把3512转成两位呢?
#4
不是两位,是两个字节
int i = 3512;
short s = (short)i;
int i = 3512;
short s = (short)i;
#5
哦,错了,带符号位。
看你的具体应用了。把你的原始说明贴出来
看你的具体应用了。把你的原始说明贴出来
#6
Integer.toHexString(oldValue)
#7
唉 搞不懂
说明是这样的“COPYBOOK中 S9(4)类型为压缩型CHAR,实为2位”
说明是这样的“COPYBOOK中 S9(4)类型为压缩型CHAR,实为2位”
#8
Integer.toHexString(oldValue)
比如oldValue=3512
算出是 db8 但它的接口只定义了两位啊
不明?!!!!!
比如oldValue=3512
算出是 db8 但它的接口只定义了两位啊
不明?!!!!!
#9
通用包头数据格式
长度:100
说明:所有接口功能前100个字节均按此格式组成
变量名称 数据类型 含义 属性 取值说明
SYSCDE X(4) 外部系统代号 必填 目前对外部系统按以下规则分配系统标识:
FUNCDE X(6) 功能码标识,用于区别不同的接口功能 必填 目前提供以下接口功能:
TERCDE X(12) 交易发起终端代码 选填(不填须默认为空)终端和操作柜员
TRNDAT X(8) 交易日 必填 按YYYYMMDD格式组成
COMMIT X(1) COMMIT点标识, 必填 Y —N
COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度
FILLER X(67) 预留 默认为空
这就是那个接口的格式 "COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度". 只占两个长度,但要送一个数 这个数是3512.
长度:100
说明:所有接口功能前100个字节均按此格式组成
变量名称 数据类型 含义 属性 取值说明
SYSCDE X(4) 外部系统代号 必填 目前对外部系统按以下规则分配系统标识:
FUNCDE X(6) 功能码标识,用于区别不同的接口功能 必填 目前提供以下接口功能:
TERCDE X(12) 交易发起终端代码 选填(不填须默认为空)终端和操作柜员
TRNDAT X(8) 交易日 必填 按YYYYMMDD格式组成
COMMIT X(1) COMMIT点标识, 必填 Y —N
COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度
FILLER X(67) 预留 默认为空
这就是那个接口的格式 "COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度". 只占两个长度,但要送一个数 这个数是3512.
#10
35的ASCII码,12的ASCII码。或者两者转为16进制后的ASCII码。是两位。
#11
你把你用来填充这个包头的代码贴出来。
或者说你准备用什么发送数据?用OutputStream?哪种类型的OutputStream?
另外,
x(8)是什么意思?8代表什么?
“COMLEN 9(4)COMP”是什么意思?从哪里能看出来要使用“2”个长度?
再者,你试一下我说的强制转换
或者说你准备用什么发送数据?用OutputStream?哪种类型的OutputStream?
另外,
x(8)是什么意思?8代表什么?
“COMLEN 9(4)COMP”是什么意思?从哪里能看出来要使用“2”个长度?
再者,你试一下我说的强制转换
#12
8是代表8位长度 4+6+12+8+1+67=98 总共100 剩下只有两位了
请问有没有方法把个字母放到一位字符里 如把db放到长度位一位的字符了
请问有没有方法把个字母放到一位字符里 如把db放到长度位一位的字符了
#13
是代表8位长度 4+6+12+8+1+67=98 总共100 剩下只有两位了
请问有没有方法把两字母放到一位字符里 如把db放到长度位一位的字符里
请问有没有方法把两字母放到一位字符里 如把db放到长度位一位的字符里
#14
To: szcxz()
你的位是指什么?你是项目经理吧?
你的位是指什么?你是项目经理吧?
#15
to UnAgain:
一个小小程序员
一个小小程序员
#16
还剩下2个字节呢,3512的二进制码为:0000 1101 1011 1000,16进制数表示为0x0DB8
其中每个0或1占一位,一字节为8位,两字节16位.
----------做梦都想成为程序员5555555
其中每个0或1占一位,一字节为8位,两字节16位.
----------做梦都想成为程序员5555555
#17
忘了说了,int a = 3521;当读取a的时候,得到的就是3521,不用去做什么转换地!int型的长度就是16位,不足16位的,正数前补0,象上面写的,负数要用补码表示,不足16位前面补1.而16进制不过是人为表示数字,和计算机无关,计算机只会读取0/1,而int也就是类型,告诉它一次应该读多少位!
楼主所说的"如把db放到长度位一位的字符里",一个位只能存一个1或者一个0,所以不可能放下.
字符d和字符b的ASCII码表示为7位.一般char类型为8位,这就浪费了一位,可惜我不会读啊,有高手进来讲一下啊!呵呵
-----------我要当程序员
楼主所说的"如把db放到长度位一位的字符里",一个位只能存一个1或者一个0,所以不可能放下.
字符d和字符b的ASCII码表示为7位.一般char类型为8位,这就浪费了一位,可惜我不会读啊,有高手进来讲一下啊!呵呵
-----------我要当程序员
#1
大侠救命啊!
#2
什么叫压缩型的16进制~~麻烦解释下先:)
#3
其实我也不太清楚。具体是跟另外一个系统做接口,它有一项是什么压缩型的,它的长度只有两位,但我要送给它的数却是3512,怎么把3512转成两位呢?
#4
不是两位,是两个字节
int i = 3512;
short s = (short)i;
int i = 3512;
short s = (short)i;
#5
哦,错了,带符号位。
看你的具体应用了。把你的原始说明贴出来
看你的具体应用了。把你的原始说明贴出来
#6
Integer.toHexString(oldValue)
#7
唉 搞不懂
说明是这样的“COPYBOOK中 S9(4)类型为压缩型CHAR,实为2位”
说明是这样的“COPYBOOK中 S9(4)类型为压缩型CHAR,实为2位”
#8
Integer.toHexString(oldValue)
比如oldValue=3512
算出是 db8 但它的接口只定义了两位啊
不明?!!!!!
比如oldValue=3512
算出是 db8 但它的接口只定义了两位啊
不明?!!!!!
#9
通用包头数据格式
长度:100
说明:所有接口功能前100个字节均按此格式组成
变量名称 数据类型 含义 属性 取值说明
SYSCDE X(4) 外部系统代号 必填 目前对外部系统按以下规则分配系统标识:
FUNCDE X(6) 功能码标识,用于区别不同的接口功能 必填 目前提供以下接口功能:
TERCDE X(12) 交易发起终端代码 选填(不填须默认为空)终端和操作柜员
TRNDAT X(8) 交易日 必填 按YYYYMMDD格式组成
COMMIT X(1) COMMIT点标识, 必填 Y —N
COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度
FILLER X(67) 预留 默认为空
这就是那个接口的格式 "COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度". 只占两个长度,但要送一个数 这个数是3512.
长度:100
说明:所有接口功能前100个字节均按此格式组成
变量名称 数据类型 含义 属性 取值说明
SYSCDE X(4) 外部系统代号 必填 目前对外部系统按以下规则分配系统标识:
FUNCDE X(6) 功能码标识,用于区别不同的接口功能 必填 目前提供以下接口功能:
TERCDE X(12) 交易发起终端代码 选填(不填须默认为空)终端和操作柜员
TRNDAT X(8) 交易日 必填 按YYYYMMDD格式组成
COMMIT X(1) COMMIT点标识, 必填 Y —N
COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度
FILLER X(67) 预留 默认为空
这就是那个接口的格式 "COMLEN 9(4)COMP 通讯区总长度 必填 通讯数据包的总长度". 只占两个长度,但要送一个数 这个数是3512.
#10
35的ASCII码,12的ASCII码。或者两者转为16进制后的ASCII码。是两位。
#11
你把你用来填充这个包头的代码贴出来。
或者说你准备用什么发送数据?用OutputStream?哪种类型的OutputStream?
另外,
x(8)是什么意思?8代表什么?
“COMLEN 9(4)COMP”是什么意思?从哪里能看出来要使用“2”个长度?
再者,你试一下我说的强制转换
或者说你准备用什么发送数据?用OutputStream?哪种类型的OutputStream?
另外,
x(8)是什么意思?8代表什么?
“COMLEN 9(4)COMP”是什么意思?从哪里能看出来要使用“2”个长度?
再者,你试一下我说的强制转换
#12
8是代表8位长度 4+6+12+8+1+67=98 总共100 剩下只有两位了
请问有没有方法把个字母放到一位字符里 如把db放到长度位一位的字符了
请问有没有方法把个字母放到一位字符里 如把db放到长度位一位的字符了
#13
是代表8位长度 4+6+12+8+1+67=98 总共100 剩下只有两位了
请问有没有方法把两字母放到一位字符里 如把db放到长度位一位的字符里
请问有没有方法把两字母放到一位字符里 如把db放到长度位一位的字符里
#14
To: szcxz()
你的位是指什么?你是项目经理吧?
你的位是指什么?你是项目经理吧?
#15
to UnAgain:
一个小小程序员
一个小小程序员
#16
还剩下2个字节呢,3512的二进制码为:0000 1101 1011 1000,16进制数表示为0x0DB8
其中每个0或1占一位,一字节为8位,两字节16位.
----------做梦都想成为程序员5555555
其中每个0或1占一位,一字节为8位,两字节16位.
----------做梦都想成为程序员5555555
#17
忘了说了,int a = 3521;当读取a的时候,得到的就是3521,不用去做什么转换地!int型的长度就是16位,不足16位的,正数前补0,象上面写的,负数要用补码表示,不足16位前面补1.而16进制不过是人为表示数字,和计算机无关,计算机只会读取0/1,而int也就是类型,告诉它一次应该读多少位!
楼主所说的"如把db放到长度位一位的字符里",一个位只能存一个1或者一个0,所以不可能放下.
字符d和字符b的ASCII码表示为7位.一般char类型为8位,这就浪费了一位,可惜我不会读啊,有高手进来讲一下啊!呵呵
-----------我要当程序员
楼主所说的"如把db放到长度位一位的字符里",一个位只能存一个1或者一个0,所以不可能放下.
字符d和字符b的ASCII码表示为7位.一般char类型为8位,这就浪费了一位,可惜我不会读啊,有高手进来讲一下啊!呵呵
-----------我要当程序员