zoukankan      html  css  js  c++  java
  • 基本类型的相互转换

     1 public class Utilities {
     2     public static byte[] int2Bytes(int num) {
     3         byte[] byteNum = new byte[4];
     4         for (int ix = 0; ix < 4; ++ix) {
     5             int offset = 32 - (ix + 1) * 8;
     6             byteNum[ix] = (byte) ((num >> offset) & 0xff);
     7         }
     8         return byteNum;
     9     }
    10 
    11     public static int bytes2Int(byte[] byteNum) {
    12         int num = 0;
    13         for (int ix = 0; ix < 4; ++ix) {
    14             num <<= 8;
    15             num |= (byteNum[ix] & 0xff);
    16         }
    17         return num;
    18     }
    19 
    20     public static byte int2OneByte(int num) {
    21         return (byte) (num & 0x000000ff);
    22     }
    23 
    24     public static int oneByte2Int(byte byteNum) {
    25                 //针对正数的int
    26         return byteNum > 0 ? byteNum : (128 + (128 + byteNum));
    27     }
    28 
    29     public static byte[] long2Bytes(long num) {
    30         byte[] byteNum = new byte[8];
    31         for (int ix = 0; ix < 8; ++ix) {
    32             int offset = 64 - (ix + 1) * 8;
    33             byteNum[ix] = (byte) ((num >> offset) & 0xff);
    34         }
    35         return byteNum;
    36     }
    37 
    38     public static long bytes2Long(byte[] byteNum) {
    39         long num = 0;
    40         for (int ix = 0; ix < 8; ++ix) {
    41             num <<= 8;
    42             num |= (byteNum[ix] & 0xff);
    43         }
    44         return num;
    45     }
    46 }
     1 public class TestMain {
     2     public static void main(String[] args) {
     3         int num = 129;
     4         System.out.println("测试的int值为:" + num);
     5 
     6         byte[] int2bytes = Utilities.int2Bytes(num);
     7         System.out.printf("int转成bytes: ");
     8         for (int i = 0; i < 4; ++i) {
     9             System.out.print(int2bytes[i] + " ");
    10         }
    11         System.out.println();
    12 
    13         int bytes2int = Utilities.bytes2Int(int2bytes);
    14         System.out.println("bytes转行成int: " + bytes2int);
    15 
    16         byte int2OneByte = Utilities.int2OneByte(num);
    17         System.out.println("int转行成one byte: " + int2OneByte);
    18 
    19         int oneByte2Int = Utilities.oneByte2Int(int2OneByte);
    20         System.out.println("one byte转行成int: " + oneByte2Int);
    21         System.out.println();
    22 
    23         long longNum = 100000;
    24         System.out.println("测试的long值为:" + longNum);
    25 
    26         byte[] long2Bytes = Utilities.long2Bytes(longNum);
    27         System.out.printf("long转行成bytes: ");
    28         for (int ix = 0; ix < long2Bytes.length; ++ix) {
    29             System.out.print(long2Bytes[ix] + " ");
    30         }
    31         System.out.println();
    32 
    33         long bytes2Long = Utilities.bytes2Long(long2Bytes);
    34         System.out.println("bytes转行成long: " + bytes2Long);
    35     }
    36 }

    测试结果:

    1 测试的int值为:156
    2 int转成bytes: 0 0 0 -100 
    3 bytes转行成int: 156
    4 int转行成one byte: -100
    5 one byte转行成int: 156
    6 
    7 测试的long值为:100000
    8 long转行成bytes: 0 0 0 0 0 1 -122 -96 
    9 bytes转行成long: 100000

     

  • 相关阅读:
    HDU-Digital Roots(思维+大数字符串模拟)
    CodeForces
    ZOJ-Little Sub and Pascal's Triangle(思维规律)
    CodeForces
    POJ
    CodeForces
    Codeforces Beta Round #87 (Div. 2 Only)-Party(DFS找树的深度)
    vue中的一个 Echarts 和 点击事件
    vue中echarts引入中国地图
    跨域 同源 协议 端口 域名
  • 原文地址:https://www.cnblogs.com/xuyou551/p/8028388.html
Copyright © 2011-2022 走看看