无符号 byte java_我们能用Java做无符号字节吗?
原语是用Java签名的,这与它们在内存/传输中的表示方式无关-字节仅为8位,是否将其解释为有符号范围取决于您。没有魔法标志可以说“这是签名的”或“这是未签名的”。
在对原语进行签名时,Java编译器将阻止您将大于+127的值分配给一个字节(或低于-128)。但是,没有什么可以阻止您为了实现这一点而降低int(或Short):int i = 200; // 0000 0000 0000 0000 0000 0000 1100 1000 (200)byte b = (byte) 200;
// 1100 1000 (-56 by Java specification, 200 by convention)/*
* Will print a negative int -56 because upcasting byte to int does
* so called "sign extension" which yields those bits:
* 1111 1111 1111 1111 1111 1111 1100 1000 (-56)
*
* But you could still choose to interpret this as +200.
*/System.out.println(b); // "-56"/*
* Will print a positive int 200 because bitwise AND with 0xFF will
* zero all the 24 most significant bits that:
* a) were added during upcasting to int which took place silently
* just before evaluating the bitwise AND operator.
* So the `b & 0xFF` is equivalent with `((int) b) & 0xFF`.
* b) were set to 1s because of "sign extension" during the upcasting
*
* 1111 1111 1111 1111 1111 1111 1100 1000 (the int)
* &
* 0000 0000 0000 0000 0000 0000 1111 1111 (the 0xFF)
* =======================================
* 0000 0000 0000 0000 0000 0000 1100 1000 (200)
*/System.out.println(b & 0xFF); // "200"/*
* You would typically do this *within* the method that expected an
* unsigned byte and the advantage is you apply `0xFF` only once
* and than you use the `unsignedByte` variable in all your bitwise
* operations.
*
* You could use any integer type longer than `byte` for the `unsignedByte` variable,
* i.e. `short`, `int`, `long` and even `char`, but during bitwise operations
* it would get casted to `int` anyway.
*/void printUnsignedByte(byte b) {
int unsignedByte = b & 0xFF;
System.out.println(unsignedByte); // "200"}
无符号 byte java_我们能用Java做无符号字节吗?相关推荐
- 一件代发分销商城系统怎么规避拼多多、淘宝、抖店对无货源的限制,还能继续做无货源代发
今年以来,淘宝.拼多多.抖音都在打压非库存电商.打压持续了很长时间,平台不断出台一系列监控缺货电商的新政策.让我们谈谈这三个平台的作用: 第一个是抖音.抖音发布的规则最多.基本上,细则每两个月更新一次 ...
- 无符号 byte java_java byte的无符号表示
1. 将一个整数转换为字节(如将整数255转换为字节) byte b1 = (byte)255 输出: b1 = -1 2. 将字节转换为无符号数(如将-1转换为无符号数) byte b1 = -1 ...
- mongodb连接java_如何从Java EE无状态应用程序连接到MongoDB
mongodb连接java 在本文中,我将介绍如何从无状态Java EE应用程序连接到MongoDB,以利用与MongoDB Java驱动程序提供的数据库的内置连接池. 如果您开发的REST API对 ...
- JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用
转载自 http://blog.csdn.net/bigtree_3721/article/details/51296064 JAVA 中无锁的线程安全整数 AtomicInteger,一个提供原子操 ...
- 如何从Java EE无状态应用程序连接到MongoDB
在本文中,我将介绍如何从无状态Java EE应用程序连接到MongoDB,以利用与MongoDB Java驱动程序提供的数据库的内置连接池. 如果您开发的REST API对MongoDB执行操作,则可 ...
- Spring MVC之基于java config无xml配置的web应用构建
更多spring相关博文参考: spring.hhui.top 前一篇博文讲了SpringMVC+web.xml的方式创建web应用,用过SpringBoot的童鞋都知道,早就没有xml什么事情了,其 ...
- java 且 或 符号_Java 、、|、||、^、、、~、等运算符
&(按位与) 运算规则:两个为真才为真 (1&1=1 , 1&0=0 , 0&1=0 , 0&0=0) 例:3&5=1 3的二进制位是0000 0011 ...
- 如何使用Java获取货币符号?
1. 前言 最近做了一个支付相关的需求,要求在收银台页面显示商品的价格时带上货币符号¥,类似下图中的格式: 最初我是用的下面这样的代码: System.out.println(Currency.get ...
- 纯C语言开发无java、无dex的安卓apk---2022笔记
纯C语言开发的安卓应用,分为 : 1). 无GUI的 command line tool,比如linux终端中的 clear.ls.mkdir.cp等指令 2). 带GUI的 activity 应用 ...
最新文章
- java arrays.sort() c_正面刚算法-Java中Arrays.sort()(一)
- 2017 计蒜之道 初赛 第五场 B. UCloud 的安全秘钥(简单)
- 在MSBuild.exe中使用条件编译(Conditional Compile)
- 计算机用户删除 cmd,用命令行删XP中的用户。除administrator外
- flutter 判断字符创_Flutter 字符串与JSON相互转化
- 正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项
- HarmonyOS之常用组件TextField的功能和使用
- 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...
- sql SET DATEFORMAT对日期处理的影响
- 转://Linux Multipath多路径配置与使用案例
- 机器视觉用c还是python_机器视觉_opencv-python环境搭建
- PLC编程技术的发展及应用
- php读取excel文件_在PHP中读取Excel文件
- 基于Excel的实验室设备管理系统设计
- 十大最佳外国Android游戏下载平台
- Android:开发中,代码被横线划掉是什么意思
- 小白多久可以学会python?
- 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用
- Matlab作图后的各种调整方法——线条、坐标、标题、图例
- 示波器的使用以及基本原理
热门文章
- H3C交换机常用巡检命令
- SWFTools pdf2swf 参数详解
- 也许MVC不该重写Url格式?
- 毕业生求职“葵花宝典”之实习提前转正秘笈
- avcodec_send_packet()函数与avcodec_receive_frame()函数
- C++协程库coroutine使用指南
- Android Screen Monitor抓取模拟器与真机界面
- VS2010配置QT5.5.0开发环境
- vtbl 什么时候被改写
- WireShark过滤器选项