java byte 梳理
最近写编解码的代码比较多,抽一点时间梳理下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 梳理相关推荐
- java基础梳理--朝花夕拾(二)
1.Java语言语法规则和文件格式: 第一个Java程序: /** 第一个Java程序: 控制台输出Hello world! */ public class Test{ //访问修饰符 cla ...
- C#到Java byte类型冲突的解决
最近要改写一个核心加密认证类,从C#改写成Java. 发现在调试时,加密的数据无论如何也对不上. 经过跟踪,发现问题出在C#和Java byte类型的区别上:在C#里 byte类型是无符号的,而Jav ...
- java byte 循环左移 循环右移 rotateLeft rotateRight
java byte 循环左移 循环右移 rotateLeft rotateRight 1.概念. 循环左移: eg1:byte in = (byte) 0x01;[0000 0001]则循环左移2位后 ...
- Java Byte取值范围
Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和 127 这两个数是怎么计算的呢? #大学知识回顾: 概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ...
- Java byte类型转换成int类型时需要 0XFF的原因
Java byte类型转换成int类型时需要 & 0XFF的原因 假设有byte b = -1; 那么b的二进制是:1111 1111. 如果将b直接转换为int类型,那么二进制是 1111 ...
- java byte数组与String互转
java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String.g ...
- java byte short_Java Byte shortValue()方法
Java Byte shortValue()方法 java.lang.Byte.shortValue() 返回此字节为一个short值. 1 语法 public short shortValue() ...
- http://www.dewen.net.cn/q/15807/java byte 疑问
http://www.dewen.net.cn/q/15807/java byte 疑问 罢巴 1 票 罢巴 252 看的是 java7 入门经典,第58页有一个关于byte类型变量初始化的问题,希望 ...
- java byte转成int数组_Java任意长度byte数组转换为int数组的方法
前言 嗯.最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了.撒花. Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些. ...
最新文章
- 用于时序动作提名生成任务,爱奇艺提出BC-GNN图神经网络 | ECCV 2020
- SQL Server 2012 sa 用户登录 18456 错误
- 如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性
- 二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)
- java abstractlist_Java集合类源码解析:AbstractList
- 蓝桥杯 ADV-126 算法提高 扫雷
- 九度OJ 1133:学分绩点 (加权平均数)
- 06-20210308华为海思Hi3516DV300鸿蒙系统的uboot编译
- gee微端服务器系统设置,Gee引擎微端服务器
- 求职指导课程测试题(学习自测使用)
- SWUST OJ1132: 机器人收集硬币
- mac远程控制程序:AnyDesk for Mac
- opencv 图像 抠图 算法_opencv提取轮廓与抠图
- 基于html的美食网站 奶茶网页设计与实现(HTML+CSS+JavaScript)
- AE基础教程(7)——第7章 区域显示,透明网格
- 【前端基础】盒子模型和页面布局总结
- 调试WebService的一个很好的工具
- 三人同行七十稀 - 中国剩余定理浅析
- 齐博cmsv7.0后台getshell
- Java实现蓝桥杯互补二元组
热门文章
- php通过使用curl获取http或者https的响应信息的方式
- 查看此docker网络连接模式_Docker:网络模式详解
- Node.js笔记-node.js连接MySQL与增删改查
- canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)
- Redis工作笔记-Redis安装及基本配置
- Web前端笔记-使用bootstrap-table.js和bootstrap-table.css使得表格分页
- Python学习笔记-猜数字游戏(学习语法)
- 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A
- 事务失败返回_什么是分布式事务以及有哪些解决方案?
- wpf 文件上传到服务器_07-文件上传到阿里云OSS实战(一)