栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言复习-3--整数原码、反码、补码,小数的存放

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言复习-3--整数原码、反码、补码,小数的存放

1.整数原码、反码、补码
为什么会有原码、反码、补码相关概念:
如果按照之前说学,第一位表示正负数,后面表示数字可见如下图情况,两者相加得到的0不相同,出现歧义。

用0减去12得出的-12,得到-12为 1111 0100 (为补码)。相加得1 0000 0000,溢出丢弃1,得到0为0000 0000:

数值表示:
正数:直接是原码;
负数:补码;
如何得取补码:其绝对值取反再加一

例题(假设是一个字节):
127:0111 1111
-13:0000 1101(取绝对值13)----取反---->1111 0010----加一----->1111 0011
-1:0000 0001—>1111 1110—>1111 1111(-1为全1)
-128:1000 0000—>0111 1111—>1000 0000(注意区别与127)
二进制(假定一个字节)–>十进制:先看符号位,再算数。
符号位是0,为正数,直接算值。
符号位是1,为负数,先将其取反,再加一,就是其绝对值。
0000 1010----->10
1111 0101------>- 0000 1010 +1-----> - 0000 1011 ---->-11
2.小数的存放
一般表示小数都用“double”类型,因为float 类有点小。
正常使用系统会警告。


避免警告方法:
float a = (float) 12.3;//强转
float c = 12.3f;//f:表示用float 类型表示12.3

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号