java中的二进制的问题

使用二制数中的最高位表示正负。

首先得知道最高位是哪一位?1个字节的类型,如字符类型,最高位是第7位,2个字节的数,最高位是第15位,4个字节的数,最高位是第31位。

不同长度的数值类型,其最高位也就不同,但总是最左边的那位(如下示意)。

字符类型固定是1个字节,所以最高位总是第7位。 (红色为最高位) 单字节数: 1111 1111  双字节数: 1111 1111 1111 1111  四字节数: 1111 1111 1111 1111 1111 1111 1111 1111  当我们指定一个数量是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。  当我们指定一个数量是有符号类型时,此时,最高数称为“符号位”。为1时,表示该数为负值,为0时表示为正值


在计算机中,

负数

除为最高位为

1

以外,还采用补码形式进行表达。

时间: 2024-10-05 17:41:53

java中的二进制的问题的相关文章

Java中的二进制及基本的位运算

Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.计算机中的二进制则是一个非常微小的开关,用"开"来表示1,"关"来表示0. 那么Java中的二进制又是怎么样的呢?让我们一起来揭开它神

java中的二进制

(1)按位与运算 & 1 & 1 = 1, 0 & 1 = 0 51 & 5  即 0011  0011 & 0000  0101 =0000 0001 = 1: (2)按位或运算 | 1 | 0 = 1,1|1 =1,  0|0 =0 51 | 5 即 0011  0011 | 0000  0101 =0011  0111 =55: (3)异或运算 ^ 1 ^ 1 = 0,1 ^ 0 = 1   ,0^ 0 = 0(两个位的值不同,则结果为1,相同结果为0) 51

Java中处理二进制移位

我相信,这篇文章读起来会相当有趣. 文章中编程语言是Java,用Java的原因:第一,Java不做数据溢出校验,这样我们可以忽略溢出异常:第二,Java普及率比较高,就像是python或shell,几乎人人都会呐. 确定一些位运算符:| 按位或 1001 | 1010 = 1011 (口诀,有真则真 似or逻辑)^ 按位异或 1001 ^ 1010 = 0011 (口诀,不等则真)& 按位与 1001 & 1010 = 1000 (口诀,同真则真 似and逻辑)~ 按位取反 ~1001 =

java中表示二进制、八进制、十进制、十六进制

1.进制 进制是一种记数方式 ,可以用有限的数字符号代表所有的数值.由特定的数值组成. 2.进制的表现形式 二进制: 由0和1两个数字组成. 八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始. 十进制: 都是以0-9这九个数字组成,不能以0开头. 十六进制:由0-9和A-F组成.为了区分于其他数字的区别,开头都是以0x或0X开始. 3.进制之间的转换 3.1 十进制转二进制:除以2,反向取余数,直到商为0.(Integer.toBinaryString(9)) 3.2

负数在java中的二进制的表示形式

正数是用原码来表示的 负数是用补码来表示的 原文地址:https://www.cnblogs.com/littleswan/p/11366596.html

java中的移位运算符与正负数转换

移位 java 中有对 二进制移动分为 左移(<<) 和右移(>>) 其中右移还分为 有符号右移(>>) 和无符号右移(>>>) 1.有符号右移:将二进制向右移动 如果原来符号位为0 则新符号位也用0 否则用1; 2.无符号右移:将二进制向右移动 不管原来的符号位是0还是1 一律用0 补位; 正负数转换 举个例子: 3的二进制 用一个字节表示 0000 0011 正常一个负数的变现方式是:其正数按位取反再加1 0000 0011 取反:1111 110

JAVA中文件的读写 I/O 输入输出流

主要内容 1.编码问题 2.File类的使用 3.RandomAccessFile的使用 4.I/O 输入输出流 编码问题: 1 import java.io.UnsupportedEncodingException; 2 3 public class 编码问题 { 4 public static void main(String[] args) { 5 // 我们项目的默认编码是GBK 6 String s = "测试 ABC"; 7 byte[] byte1 = s.getByte

java中Integer包装类的详细讲解(java二进制操作,所有进制转换)

程序员都很懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往需要操作Integer,或者各种进制的转换等等.我今天就为大家详细讲解一下Integer的使用吧.看代码: package com.herman.test; public class IntegerTest { public static void main(String[] args) { System.out.println("Integer中的常量***************************

JAVA中负数转二进制分析

最近在看集合源码,发现ArrayDeque里面用到了大量的&运算,这牵扯到了二进制.突然发现自己对负数的二进制有点模糊了,对此进行了一些支持补充. 首先我们要对原码.反码和补码有个了解: 1.所谓原码就是二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. 2.反码表示法规定:正数的反码与其原码相同:负数的反码是对其原码逐位取反,但符号位除外. 原码10010= 反码11101 (10010,1为符号码,故为负) (1110