延续32位时代的逻辑通常只会在32位整数中取出高16位和低16位的短整数(short)或相反的合并操作,如c/c++语系中loword和hiword。现在64位的cpu普及到已是标配了,所以这种经典的算法也会在64位的long中也会有相应的应用。我在使用中则遇到了一些问题,记录下备忘。
需要取32位int的高低16位,或是合并2个int到64位中,即是通过cpu中最基本的"与"、"或"和位移算法来实现。如想要取64位的高32位,那么是通过"与"算法屏蔽掉低32位再把高32位移动到低32位,最后存储到32位的寄存器里。合并则反之操作。
下面贴代码
合并2个32位整数到64位
public static long combineInt2Long(int low, int high) {
return ((long)low & 0xFFFFFFFFl) | (((long)high << 32) & 0xFFFFFFFF00000000l);
需要注意的是一定要把low和hight先转换成long在进行或运算,不然一定会出错的。
取64位整数的高低32位
public static int[] separateLong2int(Long val) {
int[] ret = new int[2];
ret[0] = (int) (0xFFFFFFFFl & val);
ret[1] = (int) ((0xFFFFFFFF00000000l & val) >> 32);
return ret;
HTML:Hyper Text Markup Language 超文本标记语言,用于制作网页展现数据。
XML:eXtensible Markup Language 可扩展标记语言(html是一种特殊的xml文件)
超文本:比普通文本功能更强大的文本(文本是可以点击,有图片,音乐,视频)
标记语言:整个网页由各种标记组成,类似xml的标签标记
浏览器有自动纠错:html运行在浏览器上,如果标记有错误,浏览器可以进行自动纠错。
HTML标签的分类
聊聊我的高效编程之路
摘要:在程序开发过程中,一些IDE的配置、常用代类的积累以及常用框架的使用。能帮助我们迅速写好代码,快速定位错误。同时,又有利于我们快速构造和部署,以及进行后续的迭代开发。本文主要从IDE的配置、代码的规范、常用代码的积累等方面来聊下自己一些编程方面的见解。
一、IDE配置篇
二、规范工程篇
三、常用代码篇
四、常用框架篇
为了更好的巩固java语言学习中的基础知识,特意为大家精心整理了java的变量与类型的基础知识,希望可以帮助到大家!1.变量与类型1.1整型变量(int)代码示例:int a=2;//定义一个整型变量
System.out.println(a);
//java中,整型没有64位或32位的概念,即可以跨平台在java中,一个int变量占4个字节,4 个字节表示的数据范围是 -2^31 -> 2...
【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO /
PO / UID 等。
正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion
反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion
【强制】抽象类命名使用 Abstract 或 Base
JavaScript(简称“JS”)是当前最流行、应用最广泛的客户端脚本语言,用来在网页中添加一些动态效果与交互功能,在 Web 开发领域有着举足轻重的地位。HTML 用来定义网页的内容,例如标题、正文、图像等;CSS 用来控制网页的外观,例如颜色、字体、背景等;JavaScript 用来实时更新网页中的内容,例如从服务器获取数据并更新到网页中,修改某些标签的样式或其中的内容等,可以让网页更加生动。JavaScript 诞生于 1995 年,几乎是和互联网同时出现;
基于现在市面上到处都是 Vue/React 之类的源码分析文章实在是太多了。(虽然我也写过 Vite的源码解析所以这次来写点不一样的。由于微信这边用的是 protobuf 来进行 rpc 调用。所以有时候需要将 JS 中的 Number 类型转换为 Long 类型传给后端。目前用的最多的就是 Long.js 了,然而市面上分析这个库的文章少的出奇。唯一能搜到的一篇讲的也非常的简略 Long.js...
本文主要介绍Java中使用IntStream.concat和Arrays.stream或for循环把两个int[](数组)合并连接一个int[]数组的方法。
原文地址:Java 连接合并两个int[](数组)的方法(IntStream和Stream)
//给定一个int类型的数组,将int数组的元素拼接字符串
public class StringTest1 {
public static void main(String[] args) {
int arr[]= {10,20,30,40};
//1.空串拼接
String result = arrayTostring(arr);
System.out.println(result);
private static String arrayTostring(int[] ar.
1.2计算机交互方式
命令行操作方式CMD窗口:操作复杂,命令较多,不容易上手,步骤简单,占用空间小,适合远程
图形化界面操作方式:操作简单,表现直观,容易上手,步骤繁琐,占用空间大
常用dos命令:
c:进入C盘根目录
d:进入D盘根目录
cd xxx:进入xxx目录
dir 查看当前目录下有的文件和
延续32位时代的逻辑通常只会在32位整数中取出高16位和低16位的短整数(short)或相反的合并操作,如c/c++语系中loword和hiword。现在64位的cpu普及到已是标配了,所以这种经典的算法也会在64位的long中也会有相应的应用。我在使用中则遇到了一些问题,记录下备忘。需要取32位int的高低16位,或是合并2个int到64位中,即是通过cpu中最基本的"与"、"或"和位移算法来实...
给出一个16位的无符号整数。称这个二进制数的前8位为“高位”,后8位为“低位”。现在写一程序将它的高低位交换。例如,数34520用二进制表示为:
1000011011011000
将它的高低位进行交换,我们得到了一个新的二进制数:
1101100010000110
它即是十进制的55430。
这个问题用位操作解决起来非常方便,设x=34520=10000110...
二进制 :0 1
八进制 :0 1 2 3 4 5 6 7
十进制 :0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
小数常量
布尔常量
System.out.println(Arrays.toString(contact(a, b)));
public static int[] contact(int[] a, int[] ...
Long changeCount =new Long(count);
//因为int和long都是基本类型,能够互相转换
long changCount= new long(count);
错误转换方式
//Long是包装类,而int是值类型数据,两者是不能强转
× Long changeCount =Long(count);
在Java中,如何把两个String[]合并为一个?看起来是一个很简单的问题。但是如何才能把代码写得高效简洁,却还是值得思考的。这里介绍四种方法,请参考选用。一、apache-commons这是最简单的办法。在apache-commons中,有一个ArrayUtils.addAll(Object[], Object[])方法,可以让我们一行搞定:String[]both =(String[])Ar...