我把坐标存储在十六进制中,通过在线搜索,它似乎使用了有符号2的补码来处理负值.我对各种转换的位置有点迷茫,我认为路径应该是:

  1. 将十六进制转换为二进制.
  2. 将二进制转换为带符号2的补码(有效地反转带符号2的补码).
  3. 转换成十进制
  4. 除以1000000

我离这个过程还有多远?

我正在使用Snowflake,所以我可以使用SnowSQL或Java连接来获得所需的结果.我对十六进制和签名2的补码不太熟悉.

如何对十六进制值F933F177进行反向工程,以获得十进制值-114.036361?

推荐答案

使用内联JAVA UDFuser16320675's条注释中包装代码:

create function transform_number(num varchar)
returns double
language java
handler='Test.transform_number'
target_path='@~/Test.jar'
as
$$
    class Test {
        public static double transform_number(String num) {
          return Integer.parseUnsignedInt(num, 16) / 1_000_000.0;
        }
    }
$$;

函数调用:

SELECT transform_number('F933F177') AS result;

输出:

enter image description here

Java相关问答推荐

Saxon 9:如何从Java扩展函数中的net.sf.saxon.expr. XPathContent中获取声明的变量

Spring Batch 5-不要让它在数据库中自动创建表

缩小画布比例后更改滚动窗格的内部大小

需要一个找不到的jakarta.sistence.EntityManager类型的Bean

为什么我的在一个范围内寻找素数的程序不能像S所期望的那样工作

暂停计时器

Java ArrayList的整数和数组的泛型

使用多个RemoteDatabase对象的一个线程

在向WebSphere中的文档添加元素时iText挂起

为什么当我创建Robot对象时,JavaFX引发IlLegalStateException异常?

Groovy/Java:匹配带引号的命令选项

如何在Java中使用正则表达式拆分字符串

如何调整JButton的大小以适应图标?

在Java中使用StorageReference将数据从Firebase存储添加到数组列表

在Spring Boot中使用咖啡因进行缓存

如何在Spring Boot中为不同的部署环境管理多个.properties文件?

JOOQ:批处理CRUD操作使用动态表定义,如何?

Spring Boot Security-每个端点都被403禁止,Spring记录一个BasicErrorController#错误(HttpServlet请求)

message.acknowledge()没有';在使用Spring Boot在ActiveMQ中读取消息后,t将消息出列

如何使用命令行为Java应用程序生成烟雾测试用例