- 浏览: 21515 次
- 性别:
文章分类
最新评论
Java中整数的三种表现形式:
十进制:0-9,逢10进1
八进制:0-7,逢8进1,以0开头表示
十六进制:0-9,A-F,逢16进1,以0x开头表示
在计算机中二进制数的表现形式:
正的二进制数的最高位为0,负的二进制数的最高位为1,由此可知,计算机中二进制数的最高位是符号位。
在计算机中如果用二进制表示负数,首先要将这个数的正数的二进制表现形式取反,然后再加1
这里拿Java中的byte(1字节-->8位)举例,如:
01111-1111---> 127(这个正数的二进制表现形式)↴
如果要表示-127,首先对127取反
0111-1111 ---> 1000-0000 ↴
然后再加1
1000-0000 ---> 1000-0001↴
如果要得到这个负的二进制数的正的二进制数的表现形式,要将这个负的二进制数取反,然后再加1
数据类型强转:
这里还是拿Java中的byte(1字节-->8位)举例,如:
1. byte b = 127; b = (byte) b + 1; b=?↴
0000-0000-0111-1111---> 127(首先在运算前会提升数据类型为int,这里为了书写方便,以short代替)↴
+0000-0000-0000-0001↴
=0000-0000-1000-0000 ---> 这时的结果为128,但是对结果进行了强转,导致前8位丢失,出现下面的情况↴
= 1000-0000 ---> 因为在计算机中二进制数的高位为符号位,这里为1,所以它是负数(-128), 然后对其执行下面的操作↴
= 0111-1111 ---> 首先对其进行取反↴
+ 0000-0001 ---> 再对其加1
= 1000-0000 ---> 这就是127+1再强转为byte在计算机中的二进制表现形式,对应十进制数-128
二进制移位:
<<(左移):被操作数乘以2的移动位数次幂(3 << 3 --> 3 * (2*2*2) --> 24)↴
0000-0000-0000-0011 << 3(左移3位后) ↴
0000-0000-0001-1000 ---> 24
>>(有符号右移,高位按原先高位值来补):被操作数除以2的移动位数次幂(-12 >> 2 --> -12 / (2*2) --> -3)↴
0000-0000-0000-0000-0000-0000-0000-1100 ---> 12 ↴
1111-1111-1111-1111-1111-1111-1111-0011 ---> 取反 ↴
+0000-0000-0000-0000-0000-0000-0000-0001 ---> +1 ↴
1111-1111-1111-1111-1111-1111-1111-0100 ---> -12(得到-12在计算机中的二进制表现形式) ↴
1111-1111-1111-1111-1111-1111-1111-1101 << 3 (右移2位后) ---> -3 ↴
0000-0000-0000-0000-0000-0000-0000-0010 ---> -3 (得到-3在计算机中的二进制表现形式) ↴
0000-0000-0000-0000-0000-0000-0000-0001 ---> +1 ↴
0000-0000-0000-0000- 0000-0000-0000-0011 ---> 3
>>>(无符号右移,高位补0):被操作数除以2的移动位数次幂(-12 >> 2 --> -12 / (2*2) --> 1073741821)↴
0000-0000-0000-0000-0000-0000-0000-1100 ---> 12 ↴
1111-1111-1111-1111-1111-1111-1111-0011 ---> 取反 ↴
+0000-0000-0000-0000-0000-0000-0000-0001 ---> +1 ↴
1111-1111-1111-1111-1111-1111-1111-0100 ---> -12 (得到-12在计算机中的二进制表现形式) ↴
00111111-1111-1111-1111--1111-1111-1101 <<< 3 (右移2位后,前两位为0,变成了正数) ---> 1073741821
发表评论
-
IO输入与输出
2012-08-13 17:21 0IO/输入输出 File类 它是IO包中唯一代表磁盘文件本身信 ... -
网络编程-总结01
2012-08-12 20:38 730网络模型: OSI参考模型 TCP/IP参考模型 ... -
IO-概念、流细节
2012-08-12 19:55 933流:就是用于读写数据的,在Java程序中,对于数据的输 ... -
黑马程序员-Java基础加强-知识总结
2012-07-30 04:24 1063------- android培训、java ... -
黑马程序员-银行业务调度系统的分析、设计、实现
2012-07-28 20:19 824------- android培训、java培训、期待与 ... -
黑马程序员-交通灯管理系统的分析、设计、实现
2012-07-28 01:49 741------- android培训、java培训、期待与 ... -
黑马程序员-编程基础03-单例设计模式
2012-07-27 17:47 609------- android培训、java培训、期待与 ... -
黑马程序员-编程基础02-小知识点
2012-07-27 17:12 881------- android培训、jav ... -
黑马程序员-Java开发前奏
2012-07-26 17:10 780------- android培训、java培训、期待与您交流 ... -
IO-1
2012-07-24 18:26 08.File类 1)File类是IO包中唯一代表磁 ... -
IO-2
2012-07-24 18:24 011.字符编码 计算机里只有数字,计算机里的一 ... -
为什么匿名内部类只能访问其所在方法中的final变量
2012-07-24 18:03 0(1).所谓“局部内部类”就是在对象的方法成员内部定义的类。而 ... -
黑马程序员-网络编程-总结02
2012-07-25 00:04 689------- android培训、java培训、期待与 ... -
黑马程序员-GUI
2012-07-25 00:08 667------- android培训、java培训、期待与 ... -
黑马程序员-IO包中的其它对象
2012-07-25 00:04 684------- android培训、ja ... -
黑马程序员-异常
2012-07-25 00:03 733------- android培训、java培训、期待与 ... -
黑马程序员-&和&&的区别
2012-07-24 14:31 569------- android培训、java培训、期待与 ... -
黑马程序员-将指定目录下的文件复制到指定的目录,并更改扩展名
2012-07-24 14:20 1022------- android培训、java培训、期待与 ... -
黑马程序员-几种常用排序算法
2012-07-24 14:06 597------- android培训、java培训、期待与 ... -
黑马程序员-wait and notify
2012-07-24 13:12 732------- android培训、jav ...
相关推荐
Qt提供了基本的文件操作接口,支持二进制文件和文本文件的读写操作。Socket通信是网络编程中不可或缺的技术,Qt支持基于TCP/IP协议的客户端和服务器端编程,以及UDP通信和组播技术。 多线程是现代应用程序中用来...
【Python编程语言基础】 Python是一种高级、通用的编程语言,以其简洁、易...通过黑马程序员的Python教程,你将逐步建立起扎实的Python编程基础,并能应对各种实际问题,为进一步深入学习和应用Python打下坚实的基础。
《黑马程序员匠心之作 C++教程_第5阶段-C++提高编程资料讲义》是一份针对C++编程初学者精心制作的教程资料,旨在帮助学习者深入理解和提升C++编程技能。这份讲义涵盖了许多关键的C++知识点,下面将对其进行详细解读...
### 黑马程序员Java基础视频辅导班Day01知识点总结 #### Java的跨平台特性与JVM 1. **Java的跨平台性**:Java语言能够实现跨平台运行的关键在于Java虚拟机(JVM),即Java代码可以在任何安装了对应JVM的操作系统上...
### 黑马程序员基础班精华笔记总汇 #### 计算机基础知识 - **计算机定义**:计算机是一种能够根据程序指令处理数据的电子设备。它由硬件和软件两大部分构成。 - **硬件**:包括中央处理器(CPU)、内存、硬盘、...
在Java编程中,运算符与流程控制是编程的基础,今天我们主要讨论的是位运算符、条件运算符以及流程控制结构,这些都是在实际编程中经常使用的概念。 1. **位运算符**: 位运算符在计算机底层处理数据时尤其重要。`...
【Linux编程基础】是本文的核心话题,主要涵盖了Linux环境下C编程的基本概念、工具使用、编程风格和软件管理等方面。Linux编程对于入门级别的读者来说是一扇通向系统级开发的门,通过学习,读者将能够理解和掌握...
### Python课后题答案知识点概览 #### Python概述 ...以上知识点覆盖了Python基础语法、编程实践以及Python2.x与Python3.x的主要差异等内容,有助于初学者更好地理解Python的核心概念和技术细节。
【标题解析】 "传智博客-黑马-2017-Python就业班-完整版视频-附带课件和资料" 这个标题揭示了这是一套完整的Python编程学习资源...通过学习和实践,学员能够建立起扎实的Python编程基础,提升自己在就业市场的竞争力。
总的来说,"黑马程序员Java基础视频辅导班Day02"的内容主要是Java编程的基础,包括常量的定义、变量的声明和初始化,以及各种运算符的使用,这些都是编写Java程序不可或缺的知识。通过深入理解和掌握这些概念,可以...
这个“python课件(黑马程序员)”的压缩包很可能包含了该平台Python课程的讲义、代码示例、练习题等学习资源,非常适合想要系统学习Python的人群,尤其是对于初学者,可以与B站上的黑马程序员Python课程相配套...
【Linux编程基础】是IT领域的基础知识之一,主要涵盖了在Linux环境下进行软件开发的基本概念、工具和规范。在学习Linux编程时,重点在于理解和掌握Linux编程风格、GNU cc编译器的使用以及程序调试技巧。 首先,...
在“【黑马程序员就业班】02.C高级编程”这个课程中,我们将深入探讨C语言的高级特性,这些知识对于成为一名熟练的IT专业人员至关重要。C语言作为基础性且广泛应用的编程语言,其高级编程技巧是提升编程能力的关键。...
C++是一种支持多种编程范式的高级编程语言,它既支持面向过程编程,也支持面向对象和泛型编程。...以上介绍了C++核心编程中内存管理的基础知识。掌握这些概念对于编写高质量、高效率的C++程序至关重要。
在本资源中,“黑马程序员Python视频中代码、课后习题等第四章内容”涵盖了Python编程语言的关键概念和实践,特别是在第四章的学习阶段。这一章节通常会深入到Python的基础语法和核心特性,以便初学者能够逐步掌握...
这份“最全面的 C++ 笔记 【黑马程序员】.zip”文件包含了深入学习C++所需的关键知识点,适合初学者和有一定经验的开发者。下面我们将深入探讨C++的一些核心概念和重要特性: 1. **基本语法与数据类型**:C++的基础...
本课件主要涵盖了MFC编程的基础知识,包括MFC的基本概念、架构、类库以及如何使用MFC进行应用程序开发。 1. **MFC的基本概念**:MFC是一组预先编写的C++类,这些类是对Windows操作系统API的抽象和封装,提供了一套...
在计算机科学与编程领域,二进制运算是一个基础且关键的概念,尤其在底层编程、数据处理以及算法优化等方面有着广泛的应用。本文将深入探讨C++中的二进制运算,包括按位与、按位或、按位异或、按位取反以及移位运算...
综上所述,毕向东的JAVA基础班教学大纲覆盖了Java编程的基础知识,从计算机语言的原理到实际开发环境的配置,再到编写和运行第一个Java程序,以及进制转换的概念。这些知识是初学者掌握Java编程所必须掌握的核心内容...
这部分是Java编程的基础之一,对于初学者来说非常重要,它涉及到文件读写、数据交换等核心操作。 #### 二、IO流的基本概念 **IO流的作用:** - **数据传输:** IO流主要用于实现不同设备间的通信和数据传输。 - **...