C语言中二进制转换最大值问题
提示:例如int类型的最大值是如何计算出来的?在这里都可以找到答案!
文章目录
- 前言
- 一、具体内容
- 二、声明总结
前言
在学习C语言的过程中,关于二进制储存这方面总是迷迷糊糊的,今天就是来拒绝模糊的一天!
提示:以下是本篇文章正文内容,下面案例可供参考
一、具体内容
在C语言中,有很多类型,比如:int,float,char,还有long这些,之前一直在迷糊,为什么int类型在C语言中的最大值为2的32次方,首先我们要明白int等这些都是由符号的(即他有正负的区分)也就是说,2的32次方表示的一个数的数量,而非一个取值范围,即在这么多的数中,有一半为负数,有一半为正数,所以当我们练习代码的时候,经常会去验证这个最大值,因为忽略了负数部分,而直接用2的32次方的二进制转换数值去做验证,发现这个验证错误,当然有很多的小伙伴发现自己的int类型的最大值并不是2的32次方,如果你确定不是的话,那么还有一个可能就是你的电脑不同导致,C语言会根据你的系统的不同,进而导致你的int类型不是4bytes (32bit),这就导致了最大值发生改变,可以只用sizeof ()函数去看你的类型为多少字节,然后再用二进制转换一下数值,这个数值就是你的数的数量多少,最大值就是你这个数值除以二(有一半是负数),但不要在你的思维中有这个除以二的习惯,这是因为有的类型它不需要除于二,比如:那些无符号类型(unsigned)
二、声明总结
这只是我个人的学习笔记,小白一个,还希望大佬们指点迷津,有什么不对的地方,希望大佬们能在评论区给改正过来,以免我的一己之见影响到新人,影响到住过未来的花朵!