2014-08-28 58 views

回答

2

为了有一个完整的算法在这里:

给定的字符串作为输入参数

1.Validate该字符串只包含数字1-9或字母A-F。

2.Calculate通过遍历每个字符, 和连接相应的二进制值的二进制值:

binary hexadecimal 
0000  0 
0001  1 
0010  2 
0011  3 
0100  4 
0101  5 
0110  6 
0111  7 
1000  8 
1001  9 
1010  a 
1011  b 
1100  c 
1101  d 
1110  e 
1111  f 

例如,将是:

0001 0010 0011 0100 

3,采用该值,设置内存位的位。

4.Address它作为原始数据类型

5.Return其作为函数的返回值

将所得原始数据类型将具有十六进制表示等同于原始的字符串。

给定输入'1234',该函数将返回将显示为十六进制值x'1234'的原始数据类型。二进制数据通常用十六进制表示,以便于阅读和引用。

(此基础上马克J. Bobak的答案,所以我想给信贷给他,但我也想后一个完整的过程。)

2

从这个页面: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i46018

当甲骨文自动转换RAW或LONG RAW数据向和从 CHAR数据中,二进制数据以十六进制形式表示,其中 一个十六进制字符表示RAW数据的每四位。 例如,显示11001011位的一个RAW数据字节,并输入 作为CB。

+0

这是一个有益的开端。因此,一旦引擎确定了正确的二进制值,它必须将这些位直接放入内存位置,并将其作为原始数据类型进行寻址。这看起来准确吗?与在系统字符集中对该值进行编码相反,并将其作为1和0的varchar值返回。这就是BINARY函数在z/OS上的DB2中的作用。 – 2014-08-29 15:21:45

+0

我解释它的方式,HEXTORAW()函数将采取任意字符串的十六进制字符,将其转换为二进制文件并将其作为二进制文件存储在RAW数据类型中。 – 2014-08-29 15:33:13

相关问题