c语言中关于int的位数问题

前提:一直以来对于位数问题理解实在是模糊,作为一个混迹编程多年的菜鸟实在是羞愧难当!

int 类型:

1.默认是有符号的,无符号类型(unsigned int)

2.编译器在处理的时候根据操作系统的位数决定int的字节数,32位,16位都是4个字节的,64位是8个字节

3.用sizeof(1)可以看出数字1的字节数,1一般默认都是int类型来存储的

4.long的位数也是不确定的,long long 确定是8个字节

5.在C11的标准中追加stdint.h避免了位数的不确定如:int32_t就是指4个字节的,int8_t就是一个字节

位数与字节:

字节也叫Byte,是计算机数据的基本存储单位。

如:C语言中的byte类型占一字节,一字节等于八位

我们来看看一个位能表示多少东西: 最小0 最大1  表示 2的1次方
再看看两个位能表示多少东西: 最小00 最大11 共2的2次方, 能表达四个数
再看看三个位能表示多少东西: 最小000 最大111 共2的3次方,能表达8个数
那八个位能表示多少?
最小:00000000 最大:11111111 这就是8位 也叫一个字节 
如果用数没有正负之分那可以表示 0~255 共256个数字. 也可以叫做 2的8次方,你用计算器算算,2的8次方是不是等于256?
如果数有正负之分那可以表示-128~+127 也是256个数,因为8位里面拿走一个位用来表示正负了,所以只能表示最大127

接下来 : 9位 = 2的九次方 =512个数字
接下来: 10位 = 2的十次方 =1024 个 ..... 以此类推

现在知道答案了吧: 
1 byte = 1字节  = 8bit 可表达 2的八次方个数字
1 short= 2字节  = 16bit 可表达2的十六次方个数字
1 int  = 4字节  = 32bit 可表达2的32次方
1024GB=1TB 
其中:K是千 M是兆 G是吉咖 T是太拉。
在电脑里一个中文字是占两个字节的。



  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值