integer - SAS 将 ascii 转换回整数值

标签 integer sas ascii

您好,我正在尝试将 ascii 字符转换回 SAS 中相应的整数值。

我可以从整数转换为 ascii,但如何返回值?我知道有一个字符“R”,我如何提取 82 的值?

我可以使用 byte 函数获取 ascii 值,但是如何从 ascii 值获取整数?

data _null_;
      do i=0 to 255;
            x=byte(i);
            put i= x=;
      end;
      y=rank('a');
      put y=;
run;

谢谢!

最佳答案

rank 函数正是您应该使用的函数。

data _null_;
      do i=0 to 255;
            x=byte(i);
            y=rank(x);
            put i= x= y= x= $HEX.;
      end;

run;

它仅以 ASCII 整理序列返回,因此这既不符合 Unicode,也不符合 DBCS。

您还可以使用 $HEX. 格式来显示字符的存储方式(物理上),这通常应该是 rank 返回的整数的十六进制表示ASCII 字符。这对于 Unicode/DBCS 字符更有用,因为您可以看到它们如何在内部存储并操作它们。

关于integer - SAS 将 ascii 转换回整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396339/

相关文章:

java - 如何使用具有可变正弦波大小和整数而不是短路的 FFT 代码?

c - 如何将ascii字符串转换为二进制?

Java 代码意外地将 "&#13"附加到行尾

c# - 如何从 C# 中的 ASCII 字符代码获取 char

c++ - 标签中整数的值(Qt)

java - 禁用Java使大数变小? (10,000,000,000 至 1E10)

c# - 10,100,1000 的倍数,... C#

SAS 宏变量和文件扩展名

mysql - SAS 传递 - 从 MySQL 提取不起作用

apache-spark - Spark 从 SAS IOM 读取 JDBC