unsigned详讲(干货满满)

前言过年偷懒了(●ˇ∀ˇ●),但是年后开学了一定要恢复学习状态,在复习加继续学习的途中,我发现对于unsigned关键字的掌握并不是很熟练,于是翻阅了各个大佬的博客以及书籍,总结了对于unsigned的一些知识点。(如有不对的地方,欢迎各位大佬指正🤭)


什么是unsigned?

从字面上来看,不难理解,unsigned是无符号的意思,事实上,的确没错。它在C语言中和signed相反,signed是有符号的意思。其实C语言中的类型基本上都是有符号类型,只是省去了signed,

比如:(signed)int --> int

(signed char)-->char (这个取决于编译器,绝大多数编译器都是这个,比如我们常用的VS)

在了解什么是无符号之前,我们先了解一下什么是符号位(知道的童鞋可以跳过了)

在计算机处理二进制数据时,专门规定了一位符号位,来确定数据的正负,这个符号位通常是数据的最高位,如8比特位数据,左边第一位就是符号位,剩下七位用来表示数据大小。

看例图:

在知道符号位之后就很容易理解无符号了,无符号嘛就是没有符号位,原来的符号位可以列入计算了。值得一提的是,无符号数都是非负数。


unsigned的深入理解

对于有符号类型的整形打印的时候用%d,对于无符号类型的整形打印时用%u

来看一

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值