首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0177对177及其补充

0177对177及其补充
EN

Stack Overflow用户
提问于 2017-05-16 17:18:00
回答 2查看 649关注 0票数 2

在c中,为什么~177产率-178,而~0177产率-128?

我试着打印前后的值,但什么也看不出来。我也无法解释这个话题。我在读“C编程语言”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-16 18:01:38

常量1770177不是相同的值。前者是十进制,后者是八进制。

来自C标准第6.4.4.1节

3小数常量以非零数字开头,由一串十进制数字组成。一个八进制常数由前缀0可选地后跟数字0到7的序列组成,一个十六进制常数由前缀0x或0X后跟十进制数字序列和字母a(或A)到f(或F)组成,它们的值分别为10到15。 4十进制常数的数值计算为基数10;为八进制常数的数值为8;十六进制常数的数值为16。

八进制常数0177等于小数中的127。作为32位十六进制值,它被表示为0x0000007f。在这个值上使用~操作符可以得到0xffff 80。假设负数的2的补码表示,小数是-128 .

票数 2
EN

Stack Overflow用户

发布于 2017-05-16 17:21:01

前导零表示0177是一个八进制数(127)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44007785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档