鱼C论坛

 找回密码
 立即注册
查看: 3009|回复: 6

不理解

[复制链接]
发表于 2022-10-19 11:03:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1111 1111   用   int 的视角去翻译,它就是 255;用 char 的视角去翻译,它就是 -1
大佬,这个用char视角是怎么理解的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-19 11:07:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-19 12:07:50 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-19 13:16 编辑
1111 1111
        是对十进制数 255 的二进制表达,其实,在计算机内部,数字就是数字,根本不存在进制,所谓的进制,只不过是为了迎合人类的习惯,只有在人机交互的时候才需要的东西,不同的进制,实际上只是同一个东西不同的表达形式而已。就比如这个 1111 1111,这是二进制的形式,八进制形式是 377,十进制形式是 255,十六进制形式是 0xff,其实它们就是同一个数值,只是看上去 "样子" 不同而已。

        当然,如果这个二进制数值是一个 char 型变量的话,那么,它的数值就是 -1,这是 char 型变量的数值范围(0 ~ 127,-128,-1)所决定的,这是因为需要把 char 一共 8 位的存储空间分一半给负值,而这个数值恰好落入了负值的区间造成的。如果这个二进制是 unsigned char 的值,那么,它就又是 255 了,因为,unsigned char 的数值范围是 0 ~ 255,不需要分一半空间给负值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-19 12:30:32 | 显示全部楼层

二进制源码:1111 1111  对应 不带符号位十进制的255

二进制源码:1111 1111  ,反码是:1000 0000,补码是:1000 0001(即带符号十进制的-1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-21 14:51:07 | 显示全部楼层
楼主估计是初学,我比你早学几天,把我的理解说一下:
电脑里存的永远都是0和1的一串数字,要让这些0和1有意义,就看我们怎么使用它,数据类型这个东西就可以起作用了
同样是1111 1111,
它是int的时候,是这个样子的 0000 0000 0000 0000 0000 0000 1111 1111,4个字节,符号位是0,它是正数,它的10进制值就是255
它是char的时候,它只占用1个字节,1111 1111,char是有符号的,这时的符号位是1,是个负数,负数是用补码存储的(参看2楼的链接),把它转回原码是 1000 0001,它的10进制数值是 -1
我是理解了指针以后才理解了数据类型这个东西,不同类型的指针,在+1的时候跳的地址数量不一样,这是根据指针的类型来判断的,学到数组指针的时候,这个现象最明显。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-21 17:38:15 | 显示全部楼层
本帖最后由 howzyao 于 2022-10-21 17:42 编辑

我也是早学几天的初学者,我的理解:
首先,char值域是:
0x0000 0000 这么长
整型值域:
0x0000 0000 0000 0000== 0
0x0000 0000 0000 0001== 1
0x1000 0000 0000 0000== -0
0x1000 0000 0000 0001== -1
0x0111 1111 1111 1111 == 128 +  [  +1+2+4+8 + 16 +32 + 64 +(128==0) ] = 127 == 128 + 127 = 255

因此,127+1 ==128 +上之前的8个1也是128 == 256
256表示为:
0x1111 1111 1111 1111
明显,最高位(个人喜欢叫它最左位)这是一个不能被占用的位,所以只能少一个最高位,而最高位表达的是128,
此时少一个128,所以一个整型,最大只能是255

char的视角看int,int就太长了,只能是127最大char了,因为最左位不能是1.
大家来说说这理解的对吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-21 18:45:15 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 10:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表