二进制,十进制,位移运算符
比如 11>>2和-7 >> 2结果分别是多少,今天我根据自己理解讲一下
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,编译器未做任何优化的情况下,规定实际移动 的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是 移动66次和移动2次得到的结果相同
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
11是正整数计算除二取余,然后倒序排列,高位补零 短除法得出1011
-7是负整数先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一
7转成二进制 00000111 取反 -7转二进制 11111000 加1 11111001
然而整数型有4个字节长度而一个字节长度是8位,故32位补全 正整数高位补0,负整数补1 如下结果转换用相加法
11(0000 0000 0000 0000 0000 0000 00001011) 把低位的最后两个数字移出0000 0000 0000 0000 0000 0000 0000 0010 结果为十进制2.
-7(1111 1111 1111 1111 1111 1111 11111001)右移两位,因为是负数,所以空位由1补充1111 1111 1111 1111 1111 1111 11111110 转换为十进制是-2
java基本数据类型就
8
种,记住就好了。除了这些都是引用型的了。
java四类八种基本数据类型
第一类:整型
byte
short
int
long
第二类:浮点型
float
double
第三类:逻辑型
boolean
(它只有两个值可取
true
false
)
第四类:字符型
char
在栈中可以直接分配内存的数据是基本数据类型。
引用数据类型:是数据的引用在栈中,但是他的对象在堆中。
要想学好Java必须知道各种数据的在内存中存储位置。 对内存有了很好的了解,可以有助你分析程序。
字节:
类型 占用存储空间
byte
字节类型
1
char
字符型
2
一个字符能存储一个中文汉字(unicode双字节编码)
short
短整型
2
int
整数类型
4
float
浮点类型(单精度)
4
long
长整形
8
double
双精度类型(双精度)
8
boolean
布尔型
1
/
8
(boolean可1个可8个统称)
java中默认的整数类型是
int
类型,如果要定义为
float
型,则要在数值后加上l或L;
默认的浮点型也是双精度浮点,如果要定义为
float
型,则要在数值后加上f或F。
一个字节等于
8
位,一个字节等于
256
个数,就是-
128
到
127
一共
256
。
位运算符详解:https://baike.baidu.com/item/移位运算符/5622348?fromtitle=位移运算符&fromid=15456331&fr=aladdin
二进制十进制转换详解:https://www.cnblogs.com/web-record/p/11132861.html
二进制,十进制,位移运算符相关推荐
- 二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符
说明 所有的位运算符操作的都是二进制,而不是我们日常生活中常用的十进制. 在系统中,一个字节占8位. 按位与运算符(&) 参加运算的两个数据,按二进制位进行"与"运算. 运 ...
- Java培训教程:Java中的位移运算符!
学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,通过系统学习学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天小千给大家分享的 ...
- 位移运算符(7个)之第一个: 左移
// 位移运算符(7个)之第一个: <<左移:移动N位就是乘以2的移动数次幂 附: 二进制转十进制:8421原则(128 64 32 24 16 8 ...
- Java中的位移运算符
移位运算符就是在二进制的基础上对数字进行平移. 我们知道,Java中byte.short和char类型在进行计算时都是先将其转换为int类型,同样在进行移位运算时也不例外.它们移位后的 ...
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
- c语言实现补码加减,C语言实现用位移运算符进行加减乘…
最近,在百度知道上回答问题,然后看见有的人问如何用位移运算符去进行加减乘除运算,于是巩固今天就在这总结一下. 先讲讲总体思路: 加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时,本位为1 ...
- Java 中的位移运算符
在源码中经常会看到一些位移运算符的使用,比如在看HashMap源码的时候,在计算hashMap容量的阈值的时候,就使用到了位移运算符,代码如下: java中有三种移位运算符 << ...
- 【Java】浅析Java位移运算符<<、>>、>>>
<<.>>.>>>分别是什么 <<.>>.>>>都是Java里的位移运算符. <<表示算术左移,< ...
- 位移运算符 ( ShiftOperator )
位移运算符 ( ShiftOperator ) 概述: 只适用于整数的数学运算,根据数制位的移动来进行数字翻倍运算的. 计算机的相邻数制位的关系是2倍关系 为什么使用位移运算? 运算速度比算数运算的翻 ...
最新文章
- CentOS 命令提示符颜色及样式详解
- 数据不平衡(class_weight、评估方法、上采样、下采样)、详解及实战
- 4分钟极速甩脂训练!抛开借口!繁忙族必备!
- c++ STL 容器——序列
- 【WP7进阶】——扩展框架组件
- 代码设定的按钮与storyboard中的xib页面间的跳转
- 推荐支持 azw3 、epub 和 mobi 格式的阅读器:FBReader
- 【DP算法篇之初学】LIS\LCS\二维DP\带条件DP
- mysql批量导出_mysql批量导出导入
- 配置管理工作职责思考
- MarkDownPad2实用教程及MarkDown常用语法
- 在线工具:电脑怎么提取图片中的文字?图片如何转化为文字?
- 解决Windows端口占用问题(port is already in use)
- eai java实现,月光软件站 - 编程文档 - Java - 建立EAI方式与SAI方式之间的通信
- 1nm晶体管诞生 秒杀当前14nm主流芯片制程
- 用matlab怎么画出y=sin(t)的导函数图像?用diff为什么一阶导函数会缩小100倍,二阶导函数会缩小1000倍。求大神指教
- win10/win11家庭版解压缩时,出现错误代码0x80004005的解决办法
- AWVS_扫描报告分析
- 安卓系统解锁adb remount
- Android Studio 上传代码到Gitee