java 二进制的理解
来源:互联网 发布:刷手机流量软件 编辑:程序博客网 时间:2024/05/21 14:10
转载:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
一. 机器数和真值
1、机器数
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.
比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。
那么,这里的 00000011 和 10000011 就是机器数。
2.真值
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1
二. 原码, 反码, 补码的基础概念和计算方法.
原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是
[1111 1111 , 0111 1111]
即
[-127 , 127]
- 反码
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反
- 补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补[-1] = [10000001]原 = [11111110]反 = [11111111]补
- java 二进制的理解
- 二进制的理解
- C语言---------二进制的理解
- 计算机二进制的自我理解
- java 二进制的问题
- JAVA二进制的读写
- 二进制理解
- 关于数的二进制的深入理解
- 进制(二进制,十进制,十六进制等)的理解
- Java 输出整数的二进制
- java二进制的学习(一)
- java 二进制兼容 的解释
- 理解java中【带符号数和无符号数】以及【二进制的原码,补码,反码】(早期)
- 个人对背包问题的二进制优化问题的理解
- 二进制理解(1)
- 再次理解二进制
- 深入理解二进制补码
- java 二进制
- nodejs小白入门基础篇(一)
- MP4学习(六)ts-mp4源码阅读(4)moov box的解析
- Effective.Java 读书笔记(9)关于HashCode
- 产品经理之如何进行竞品分析
- hdu6015
- java 二进制的理解
- php数据库链接Apache服务器实现代码
- 2015互联网校招总结—一路走来
- spring-boot系列——整合jersey
- 斑点检测
- 深度神经网络(DNN)反向传播算法(BP)
- RocketMQ源码分析----发送消息
- POJ 1636 Prison rearrangement
- android获取设备屏幕大小的方法