最近写编解码的代码比较多,抽一点时间梳理下java下byte的解析。在例子代码中主要涉及的知识点就两块:

  1、byte代表8个bit,其中最高位是符号位

  2、当我们用String类的getBytes时,其实是默认采用某种编解码格式的,因此在例子中数字1被解析成49;

public class App {public static void main(String[] args) throws UnsupportedEncodingException {byte a = 11;//总共8位,第一位是符号位for(int i = 0; i < 8; i++){System.out.printf("%d ", a >> i & 0x01);}//1 1 0 1 0 0 0 0
        System.out.println(" ");byte c = 0x11;for(int i = 0; i < 8; i++){System.out.printf("%d ", c >> i & 0x01);}//1 0 0 0 1 0 0 0
        System.out.println(" ");byte b = 1;b |= 0x01 << 7;for(int i = 0; i < 8; i++){System.out.printf("%d ", b >> i & 0x01);}//1 0 0 0 0 0 0 1 System.out.println(" ");System.out.println(b);//-127System.out.println(" ");byte d = Byte.parseByte("A", 16);for(int i = 0; i < 8; i++){System.out.printf("%d ", d >> i & 0x01);}//0 1 0 1 0 0 0 0
        System.out.println(" ");String i = Integer.toString(3);//3String j = Integer.toHexString(21);//15,采用16进制表示21
        System.out.printf("%s %s ", i, j);//3 15
        System.out.println(" ");//getBytes一定采用某种编码格式,若不填写则采用操作系统默认的格式byte[] data = j.getBytes("UTF-8");int ii = 0;int jj = 0;//在UTF-8编码下1被编码成49,注意不是十进制四十九,而是十进制四和九,同理编码五为五三;for( ii = 0; ii < data.length; ii++){System.out.println(data[ii]);//49 53for( jj = 0; jj < 8; jj++){System.out.printf("%d ", data[ii] >> jj & 0x01);if(7 == jj){System.out.println(" ");}}//1 0 0 0 1 1 0 0  ---> 4 9 //1 0 1 0 1 1 0 0  ---> 5 3
            }//for( ii = 0; ii < data.length; ii++){        }
}

转载于:https://www.cnblogs.com/Fredric-2013/p/6605253.html

java byte 梳理相关推荐

  1. java基础梳理--朝花夕拾(二)

    1.Java语言语法规则和文件格式: 第一个Java程序: /** 第一个Java程序: 控制台输出Hello world! */ public class Test{     //访问修饰符 cla ...

  2. C#到Java byte类型冲突的解决

    最近要改写一个核心加密认证类,从C#改写成Java. 发现在调试时,加密的数据无论如何也对不上. 经过跟踪,发现问题出在C#和Java byte类型的区别上:在C#里 byte类型是无符号的,而Jav ...

  3. java byte 循环左移 循环右移 rotateLeft rotateRight

    java byte 循环左移 循环右移 rotateLeft rotateRight 1.概念. 循环左移: eg1:byte in = (byte) 0x01;[0000 0001]则循环左移2位后 ...

  4. Java Byte取值范围

    Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和 127 这两个数是怎么计算的呢? #大学知识回顾: 概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ...

  5. Java byte类型转换成int类型时需要 0XFF的原因

    Java byte类型转换成int类型时需要 & 0XFF的原因 假设有byte b  = -1; 那么b的二进制是:1111 1111. 如果将b直接转换为int类型,那么二进制是 1111 ...

  6. java byte数组与String互转

    java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String.g ...

  7. java byte short_Java Byte shortValue()方法

    Java Byte shortValue()方法 java.lang.Byte.shortValue() 返回此字节为一个short值. 1 语法 public short shortValue() ...

  8. http://www.dewen.net.cn/q/15807/java byte 疑问

    http://www.dewen.net.cn/q/15807/java byte 疑问 罢巴 1 票 罢巴 252 看的是 java7 入门经典,第58页有一个关于byte类型变量初始化的问题,希望 ...

  9. java byte转成int数组_Java任意长度byte数组转换为int数组的方法

    前言 嗯.最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了.撒花. Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些. ...

最新文章

  1. 用于时序动作提名生成任务,爱奇艺提出BC-GNN图神经网络 | ECCV 2020
  2. SQL Server 2012 sa 用户登录 18456 错误
  3. 如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性
  4. 二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)
  5. java abstractlist_Java集合类源码解析:AbstractList
  6. 蓝桥杯 ADV-126 算法提高 扫雷
  7. 九度OJ 1133:学分绩点 (加权平均数)
  8. 06-20210308华为海思Hi3516DV300鸿蒙系统的uboot编译
  9. gee微端服务器系统设置,Gee引擎微端服务器
  10. 求职指导课程测试题(学习自测使用)
  11. SWUST OJ1132: 机器人收集硬币
  12. mac远程控制程序:AnyDesk for Mac
  13. opencv 图像 抠图 算法_opencv提取轮廓与抠图
  14. 基于html的美食网站 奶茶网页设计与实现(HTML+CSS+JavaScript)
  15. AE基础教程(7)——第7章 区域显示,透明网格
  16. 【前端基础】盒子模型和页面布局总结
  17. 调试WebService的一个很好的工具
  18. 三人同行七十稀 - 中国剩余定理浅析
  19. 齐博cmsv7.0后台getshell
  20. Java实现蓝桥杯互补二元组

热门文章

  1. php通过使用curl获取http或者https的响应信息的方式
  2. 查看此docker网络连接模式_Docker:网络模式详解
  3. Node.js笔记-node.js连接MySQL与增删改查
  4. canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)
  5. Redis工作笔记-Redis安装及基本配置
  6. Web前端笔记-使用bootstrap-table.js和bootstrap-table.css使得表格分页
  7. Python学习笔记-猜数字游戏(学习语法)
  8. 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A
  9. 事务失败返回_什么是分布式事务以及有哪些解决方案?
  10. wpf 文件上传到服务器_07-文件上传到阿里云OSS实战(一)