比如要将日期和数据的ID进行复合存储,可以使用接位或与位移来完成。
long currTime = System.currentTimeMillis();
long originId = 500000L;
currTime = 0x1398b3f213b;
注意到按位或的规则:
1 | 1 = 1
1 | 0 = 1
0 | 0 = 0
因此在反转复合数据的时候,需要保证日期和数据ID的二进制位数不能有1|1的或操作。此处首先让ID值取得较大,同时进行左移操作
long targetId = originId << 32;
targetId = 0x7a12000000000L;
此时进行日期与ID的按位与操作时仍会有四位二进制同时为1,其中一个办法是将id的初始值设得更大些,我们采用另一种办法。
注意到时间的值最后三位为毫秒值,可以将其归0减小精度至秒
Long targetTime = TimeUnit.MILLISECONDS.toSeconds(currTime);
此时进行复合数据后就不会产生不可逆的后果。
Long mark = targetTime | targetId;
若需要反转求出其值:
originId = mark >> 32;
currTime = (mark ^ (id << 32)) * 1000L;
分享到:
相关推荐
在计算机系统中,所有的数据都是以二进制的形式存储的,位操作允许程序员直接对这些二进制数据进行操作,进行数据的置位、清除和状态切换等。位操作的优点在于它的直接性,这意味着相比于使用其他诸如算术运算和逻辑...
C++中的按位操作符是一种强大的工具,它允许开发者对整型变量的每一位进行单独操作。无论是signed(有符号)还是unsigned(无符号)整型,甚至是char类型,都可以应用这些操作符。它们在处理二进制状态标识、存储多...
1. 使用:在日常操作中,通过数据字典可以了解每个业务功能涉及的数据,从而更好地理解和执行业务流程。对于开发者而言,它是进行系统扩展和定制的重要参考。 2. 维护:随着企业业务的变化,数据字典也需要同步更新...
总的来说,按位操作和移位运算符在处理二进制数据、节省内存和提高计算效率等方面具有重要作用,尤其是在处理底层系统编程和嵌入式系统时。然而,对于带符号整数的右移操作,需要注意不同编译器可能有不同的行为,...
本文将深入探讨VC++中的基本数据类型,包括它们的定义、用途以及如何进行常见操作。 1. **基本数据类型** - `char`: 用于存储单个字符,如字母、数字或符号,占用1字节(8位)内存。 - `int`: 用于表示整数,通常...
本教程主要涵盖了四种主要的复合数据类型:结构体(Struct)、联合体(Union)、位段(Bit Field)和枚举(Enum),以及类型定义(Typedef)。 1. **结构体(Struct)**: - **定义**:结构体是由不同类型的变量...
### 微软复合文档格式详解 #### 一、总体介绍 复合文档格式是Microsoft开发的一种文件格式,主要用于存储像Microsoft ...通过对扇区、SID链、MSAT、SAT以及目录的理解,我们可以有效地解析和操作复合文档中的数据。
在C语言中,变量是通过运算符进行操作的基本单位,没有直接访问和修改单个位的方法,因此需要编写复合语句来实现位操作。例如,要将一个8位无符号整数的最高位设为1,必须通过移位操作和位运算来实现,这种方法编译...
通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
在Oracle的PL/SQL编程中...总的来说,PL/SQL的变量定义和使用提供了丰富的数据存储和处理能力,而复合类型则让我们能够更灵活地组织和操作数据。在编写PL/SQL程序时,合理利用这些特性,可以使代码更加高效、易于维护。
12. 支持复合键码,适应数据仓库中复杂的数据关联。 13. 有效地管理变长数据,避免传统数据库中的性能问题。 14. 可选择性地关闭锁管理,减少无更新状态下的资源消耗。 此外,数据仓库的上下文维和上下文信息对于...
通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
在深入理解复合文档文件格式后,可以进行文件解析、内容提取、数据恢复等多种操作。这种格式广泛应用于Microsoft Office系列软件,如Excel和Word,使得用户可以方便地集成各种类型的数据,创建交互式的文档。对于...
STM32F103系列微控制器是STMicroelectronics公司推出的基于ARM Cortex-M3内核的高性能、低成本的32位微控制器。该芯片广泛应用于各种嵌入式系统设计,尤其是需要USB接口的项目。在本源码中,开发者可以找到实现USB ...
在CASS-DWG格式转换中,图形元素的编码属性十分重要,因为这些属性可以与CASS中的全要素表进行关联,通过这种关联可以将图形元素的属性信息与CASS配置表中的信息相匹配,进而筛选出不一致的数据,并将其作为问题数据...
多维DBMS则与数据仓库互补,擅长处理多维数据模型,如OLAP(在线分析处理),支持复杂的分析操作。 最后,数据仓库的刷新策略,如“数据复制”和“变化数据捕捉”,确保数据的实时性和一致性,使决策者能获取最新的...
- 位集合(std::bitset):用于存储和操作二进制位序列。 - 迭代器(iterator):类似于指针,用于遍历容器中的元素。 理解并熟练掌握这些数据类型和容器是成为C++程序员的关键步骤,它们构成了C++程序设计的基础。...
- **数据存储和访问的并行性**:通过并行处理提升性能。 - **元数据控制**:实时、准确的元数据访问对用户非常重要。 - **语言接口**:提供丰富的接口语言,支持不同类型的查询操作。 - **高效加载和索引**:...