欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++学习(四)之 二进制

程序员文章站 2022-07-04 23:11:11
二进制学习时的笔记(其实也没什么用,留着给自己看的) 二进制简介只有 0 1 优点:1.二进制状态简单2、可靠性、稳定性高3、运算规则简单,简化设计4、通用性强 二进制计算正数二进制十进制转二进制(除二直到0为止)规则: 除二倒取余或者 把一个数字拆成2的n次方相加55=32+16+4+2+12^5 ......

二进制学习时的笔记(其实也没什么用,留着给自己看的)

二进制简介
只有 0 1
优点:
1.二进制状态简单
2、可靠性、稳定性高
3、运算规则简单,简化设计
4、通用性强

二进制计算
正数二进制
十进制转二进制(除二直到0为止)
规则: 除二倒取余
或者 把一个数字拆成2的n次方相加
55=32+16+4+2+1
2^5+2^4+2^2+2^1+2^0
110111
负数二进制
-77 -1001101
用一位二进制位当作符号为 存符号
int 32位 char 8位
char -77 ——> 最高位当做符号位 1为负号 0位正号
1100 1101 (原码 原码在计算式会出错)
对原码取反
1011 0010 (除了符号位之外 全部取反 反码)
1011 0010+1=1011 0011 (反码加1)


存放的是补码 补码相加不会出错

8位二进制
16+(-13)
16 0001 0000
-13的二进制 1.原码 1000 1101
2.反码 1111 0010
3.补码 1111 0011
原码相加
0001 0000 +
1000 1101 =
1001 1101 (结果是错的)

补码相加
0001 0000 +
1111 0011 =
1 0001 0011 (只有8位,去掉最高位 结果正确)

规定正数的原码、反码和补码是一样的

小数的二进制 和浮点型数据的存放

小数的二进制 2^-6

存浮点型 精度 float 32位 才精确6-7位
32位
最高位 符号位 1位 存放符号 1为负数0为正数
8位指尾数位 1+172——>存到指数位 偏移量(127)
23位 尾数位

1.1001001 左移一位
1.1001001*2^1 //二进制的指数形式

10进制
110=1.10*10^2

-3.1415
1 1000 0000 1001 001 0000 0000 0000 0000

——>127 8位指数位 ——>-127~128 +2^7-1 

*/

 

 

浮点型二进制

1.首先计算小数的二进制 2.将小数二进制转换成指数形式 3.将小数的符号位存在float的第一位,0为正数, 1为负数.指数部分加上偏移量,存入8位指数位 将指数形式的二进制的小数部分存入尾数位, 如果位数不够 ,在后面用0补齐 P.S 将小数换算成指数形式的时候,规则是将小 移动到第一个1的右边,左移几位就是乘以2的 几次幂

C++学习(四)之 二进制

 

 

 

 

2018.05.13   21:24:13