it编程 > 编程语言 > C/C++

C语言基础操作之操作符、进制与数据表示通俗讲解

34人参与 2025-08-05 C/C++

操作符详解:从基础到实用

位操作符:二进制层面的魔法

位操作符是直接对数字二进制位进行操作的工具,在底层编程中非常实用:

int a = 0b1010; // 10
int b = 0b1100; // 12
printf("%d", a & b); // 输出8(0b1000,保留共同为1的位)
printf("%d", a | b); // 输出14(0b1110,合并所有1的位)
printf("%d", a ^ b); // 输出6(0b0110,不同的位保留1)
printf("%d", 8 << 1); // 16(左移1位=×2)
printf("%d", 16 >> 2); // 4(右移2位=÷4)

赋值操作符的进阶用法

除了基本的=,复合赋值操作符能让代码更简洁:

int x = 10;

x += 5;  // 等价于 x = x + 5 → x=15
x *= 3;  // 等价于 x = x * 3 → x=45
x &= 0b111; // 等价于 x = x & 0b111 → 保留低3位

三元运算符的巧妙应用

条件操作符?:可以简化简单的if-else判断:

int score = 75;

// 格式:条件 ? 满足时的值 : 不满足时的值
char* result = (score >= 60) ? "及格" : "不及格";

printf("%s", result); // 输出"及格"

进制转换:程序员的"语言切换"

多进制输出技巧

在printf中用特定格式符可直接输出不同进制:

int num = 255;

printf("十进制:%d\n", num);   // 255
printf("八进制:%o\n", num);   // 377(前缀0可省略)
printf("十六进制:%x\n", num); // ff(小写)
printf("十六进制:%x\n", num); // ff(大写)

十六进制的实用价值

十六进制因与二进制转换方便(1位16进制=4位二进制),常用于表示内存地址或颜色值:

int color = 0xff0088; // 红色(ff)、绿色(00)、蓝色(88)的混合色

原码、反码、补码:计算机的"负数思维"

为什么需要补码?

补码计算实例

以8位整数为例,计算3 + (-2)

  1. 3的补码:00000011
  2. -2的补码:11111110(原码10000010→反码11111101→加1得补码)
  3. 相加结果:00000011 + 11111110 = 100000001
  4. 去掉最高位溢出,得00000001(即1),计算正确!

位操作与补码的配合

利用补码特性可以简化操作,比如取相反数:

int a = 5;

int b = ~a + 1; // 等价于 -a(补码的取反加1就是相反数)
printf("%d", b); // 输出-5

通过这些基础概念的理解,能帮你更深入掌握c语言的底层逻辑,为后续学习指针、内存操作打下基础。

总结

到此这篇关于c语言基础操作之操作符、进制与数据表示通俗讲解的文章就介绍到这了,更多相关c语言操作符、进制与数据表示内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

C语言整数和浮点数在内存中的存储方法示例

08-05

C语言自定义类型之联合和枚举解读

08-05

Qt中实现多线程导出数据功能的四种方式小结

08-06

C语言中%zu的用法解读

08-01

C++获取当前时间戳的几种常用方法

08-08

C++归并排序代码实现示例代码

08-09

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论