java 数字转化成字节存储算法

package com;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

public class TestByte {

/**

* ip转化成4个字节进行存储,然后再把四个字节转换成byte

*/

public static void ipTobyte()

{

String ip="222.168.205.83";

String[] ips = ip.split("\\.");

int ip1 = Integer.valueOf(ips[0]);

int ip2 = Integer.valueOf(ips[1]);

int ip3 = Integer.valueOf(ips[2]);

int ip4 = Integer.valueOf(ips[3]);

System.out.println(ip1);

System.out.println(ip2);

System.out.println(ip3);

System.out.println(ip4);

byte b1 = (byte)ip1;

byte b2 = (byte)ip2;

byte b3 = (byte)ip3;

byte b4 = (byte)ip4;

System.out.println(b1);

System.out.println(b2);

System.out.println(b3);

System.out.println(b4);

// int 转byte之后 操作127的数字将全部变成负数形式,如果想转成原来的 int值 直接 & 0xFF

System.out.println(b1 & 0xFF);

System.out.println(b2 & 0xFF);

System.out.println(b3 & 0xFF);

System.out.println(b4 & 0xFF);

}

public static void byteToIP()

{

}

/**

* long -> 4位字节 -> long

* 主要是做了一个数据压缩算法

* 比如说一个ip可以直接存储成4个字节

*/

public static void numToBinaryString()

{

//源数字

long num = 98786657;

//转化成二进制串

String binary = Long.toBinaryString(num);

System.out.println(binary);

int length = 32-binary.length();

//补充到32位

for(int i=0;i

{

binary = '0'+binary;

}

System.out.println(binary);

System.out.println(binary.length());

//分割成四个字节 (一个字节8位)

String b1 = binary.substring(0, 8);

String b2 = binary.substring(8, 16);

String b3 = binary.substring(16, 24);

String b4 = binary.substring(24, 32);

System.out.println(b1);

System.out.println(b2);

System.out.println(b3);

System.out.println(b4);

//8位转化成一个字节

int a1 = Integer.valueOf(b1, 2);

int a2 = Integer.valueOf(b2, 2);

int a3 = Integer.valueOf(b3, 2);

int a4 = Integer.valueOf(b4, 2);

System.out.println(a1);

System.out.println(a2);

System.out.println(a3);

System.out.println(a4);

byte c1 = (byte)a1;

byte c2 = (byte)a2;

byte c3 = (byte)a3;

byte c4 = (byte)a4;

System.out.println(c1);

System.out.println(c2);

System.out.println(c3);

System.out.println(c4);

//把字节转化成long

long ret = 0;

ret |= c4 & 0xFF;

ret |= (c3<<8) & 0xFF00;

ret |= (c2<<16) & 0xFF0000;

ret |= (c1<<24) & 0xFF000000;

System.out.println(ret);

// Integer.toBinaryString(c4&0xFF);

//System.out.println();

}

/**

* 把字节写入文件,看看是啥效果

* @throws IOException

*/

public static void writeByteToFile() throws IOException

{

File file = new File("a.txt");

FileOutputStream fis = new FileOutputStream(file);

fis.write(-106);

fis.write(-38);

fis.write(0);

fis.write(11);

fis.flush();

System.out.println(file.getAbsolutePath());

}

public static void main(String[] args) throws IOException

{

//TestByte.writeByteToFile();

//TestByte.numToBinaryString();

TestByte.ipTobyte();

}

}

1 楼

dyllove98

2011-05-28

/**

* 从ip的字符串形式得到字节数组形式

*

* @param ip

* 字符串形式的ip

* @return 字节数组形式的ip

*/

public static byte[] getIpByteArrayFromString(String ip) {

byte[] ret = new byte[4];

java.util.StringTokenizer st = new java.util.StringTokenizer(ip, ".");

try {

ret[0] = (byte) (Integer.parseInt(st.nextToken()) & 0xFF);

ret[1] = (byte) (Integer.parseInt(st.nextToken()) & 0xFF);

ret[2] = (byte) (Integer.parseInt(st.nextToken()) & 0xFF);

ret[3] = (byte) (Integer.parseInt(st.nextToken()) & 0xFF);

} catch (Exception e) {

System.out.println(e.getMessage());

}

return ret;

}

java存储字节,java 数目字转化成字节存储算法相关推荐

  1. android把255转换成字节,android 上传参数设置,字符转化成字节,包装流等

    jsp中的小知识点 在页面输入内容控制台可以打印 必须写入的内容 value="save"/> 这个的意思是把隐藏域的值提交给了save方法了 SetDooutput(tru ...

  2. php字节怎么转化成字符串,php将utf-8(3字节)字符串转换成字节

    //将utf-8字符串转换成字节 function strToByteArr($str){ //$str = iconv('gbk', 'utf-8', $str); $arr=array(); $l ...

  3. 【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集

    Java中的一个char采用的是Unicode编码集,占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的. 但是在C/C++中由于采用的字符编码集是ASCII, ...

  4. JAVA类加载对字节码的处理_深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)...

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 周志明的< ...

  5. java如何把汉字转换成机内码_java语言如何将汉字转化成五笔

    java语言如何将汉字转化成五笔 [2021-01-31 08:32:59]  简介: php将汉字转ascii的方法:首先创建一个php示例文件:然后通过封装好的"public funct ...

  6. java qq通信,Java通信-仿QQ聊天项目

    前后历时一个多月的Java实现聊天通信项目-仿QQ聊天室基本告一段落,期间面对了很多问题,也有不同的解决方案,重写了几次核心代码,等等问题.现在在项目的结束之时,给自己做一个总结,算是一个回顾,算是一 ...

  7. 深入理解Java虚拟机:Java类的加载机制

    本篇内容包括:Java 类的加载机制(Jvm 结构组成.Java 类的加载).类的生命周期(加载-验证-准备-解析-初始化-使用-卸载).类加载器 以及 双亲委派模型. 一.Java 类的加载机制 1 ...

  8. Java八股文(Java基础面试题)

    JDK.JRE.JVM 三者之间的关系? JDK(Java Development Kit):是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库. ...

  9. Java 基础-01 Java语言入门

    文章目录 Java 基础-01 Java语言入门 1.计算机基本概念 1.1 计算机概述 1.2 计算机组成 1.3 CPU.内存与硬盘 2.软件基本概念 2.1 软件概述 2.2 人机交互方式 2. ...

最新文章

  1. html转chm后脚本错误,win10系统打开chm资料弹出窗口提示脚本出现错误的恢复办法...
  2. 计算器用户界面与业务逻辑的分离
  3. 听说你想去大厂看学姐,带你看看京东软件产品经理岗长啥样?
  4. 又拍云递归删除目录及文件
  5. linux查找文件命令 要查找包含某字符
  6. jquery 学习之一 对象访问
  7. 番茄花园win11 32位官方原版镜像文件v2021.07
  8. MySQL数据库datetime类型不能为空值的问题
  9. 他不怕被拒绝_不会敬酒很吃亏,送你五个敬酒词的模版,再也不怕劝酒了
  10. 【UML】对象图Object diagram(转)
  11. Redis哨兵主从配置(半自动)
  12. 如何检查Android上的互联网访问? InetAddress永远不会超时
  13. Ant--基于java的build工具
  14. 类的加载器ClassLoader及其示例
  15. 2019强网杯upload
  16. [WP]第五届XMan选拔赛web
  17. 按键精灵可以实现c语言吗,按键精灵的原理和编写方法(1)
  18. SpringCloud 之 注册中心
  19. 怎么用计算机截图快捷键,教您怎么使用电脑自带的截图快捷键
  20. NVM Node版本管理工具

热门文章

  1. 小米新机将搭载鸿蒙,小米新機將搭載鴻蒙係統?還得等鴻蒙進一步的消息!
  2. cad蜂鸟工具_蜂鸟视图地图数据中台,全面提升商业地产的可视化信息管控
  3. 计算机组成原理_在线作业_2,计算机组成原理_在线作业_2讲述.docx
  4. 多媒体计算机技术论文结束语,论述多媒体计算机技术在广播电视工程中的应用成果论文...
  5. python删除word表格中的某一行_python docx删除word段落
  6. 三星s9android recovery,三星S9+刷第三方中文twrp recovery工具和教程
  7. 为什么整数在python中表示d_python 数据类型和变量
  8. npm 打包vue,错误 errno 126 / 清空node_modules目录
  9. 【Centos 7】【Docker】 安装 redis
  10. 【JavaScript】【JQuery】获取 data-* 属性值