C语言的进制表示【八进制,十六进制】

文章目录

  • C语言的进制表示【八进制,十六进制】
    • 题目介绍
    • C语言的进制表示
      • 1. 十进制
      • 2. 八进制
      • 3. 十六进制
      • 4. 二进制
    • 进制表示总结

C语言的进制表示【八进制,十六进制】

题目介绍

故事的起因是今天在群里看到有人发来的问题

image-20241108131949102

//原题目
int main() {int a = 0123;printf("%d ", a);int b = a << 2, c = a >> 2;printf("a=%d,b=%d,c=%d\n", a, b, c);return 0;
}

刚拿到题目时,我也有点懵,0123的二进制不应该是 0000 0001 0010 0011 吗?

为什么左移两位后会变成了 [0000 0000 0101 0011]2 = [83]10 了呢?

我在我的环境上调试了一下过程,如下图所示

过程1

过程2

发现 a 居然是[0053]16 = [0000 0000 0101 0011]2,并非我所想的 0000 0001 0010 0011

经过一番研究后发现是C语言的进制问题,这里的 0123八进制

C语言的进制表示

在 计算机中,整数可以使用多种进制表示,包括 十进制八进制十六进制二进制

以下是C语言为实例的每种进制的表示方法:

1. 十进制

  • 默认情况下,整数是以十进制表示的。
  • 不需要前缀,直接写数字即可

2. 八进制

  • 八进制以 0 前缀开头。
  • 八进制数字只能包含 0-7,否则会引发错误

3. 十六进制

  • 十六进制以 0x0X 前缀开头。
  • 使用数字 0-9 和字母 A-F(不区分大小写)来表示

4. 二进制

  • 0b0B 前缀来表示二进制数
    • 【注】较早版本的C语言 不直接支持二进制表示,通常需要用位运算或一些库函数来处理二进制数。

以下为代码实例

#include<stdio.h>int main() {int a = 123;   // 十进制 123int b = 0123;  // 八进制 0123,等于十进制 83int c = 0x1A3;  // 十六进制 0x1A3,等于十进制 419int d = 0b1011;  // 二进制 1011,等于十进制 11 printf("a=%d  b=%d c=%d  d=%d\n",a,b,c,d);return 0;
}

不同进制的C语言测试

进制表示总结

进制表示方法示例
十进制默认,无需前缀int a = 123;
八进制前缀 0int b = 0123;
十六进制前缀 0x0Xint c = 0x1A3;
二进制0b0Bint d = 0b1011;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通Quick板上安装编译Ros1 noetic,LeGO_LOAM,FAR_Planner和rslidar_sdk

环境要求&#xff1a; 这里quick板上安装的是Ubuntu20.04版本 Ros Noeti安装&#xff1a; 1.设置软件源&#xff1a; 官方提供的软件源&#xff1a; sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.…

一招解决Mac没有剪切板历史记录的问题

使用Mac的朋友肯定都为Mac的剪切功能苦恼过&#xff0c;旧内容覆盖新内容&#xff0c;导致如果有内容需要重复输入的话&#xff0c;就需要一次一次的重复复制粘贴&#xff0c;非常麻烦 但其实Mac也能够有剪切板历史记录功能&#xff0c;iCopy&#xff0c;让你的Mac也能拥有剪切…

PymuPDF4llm提取pdf文件文字、表格与图片

一、PymuPDF4llm 的功能特点 &#xff08;一&#xff09;文本提取 简单易用 PymuPDF4llm 的文本提取功能非常简单易用。只需使用pip install pymupdf4llm进行安装&#xff0c;然后通过import pymupdf4llm导入库&#xff0c;就可以使用md_text pymupdf4llm.to_markdown("…

nginx 搭建网站

1.查看防火墙状态systemctl status firewalld 2.getenforce 3.安装nginx yum install nginx -y 4.网站信息 echo "welcome to yinchuankejixuanyuan" > /usr/share/nginx/html/index.html 5.查看命令状态 nginx -t 6.重启 systemctl restart nginx

gin入门

Gin入门笔记 1. 初始gin 1.1. 依赖安装 go get github.com/gin-gonic/gin写gin程序都有一套固定的格式 初始化写路由监听运行 1.2. hello world package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {router : gin.Default()rou…

CentOS 7 安装 ntp,自动校准系统时间

1、安装 ntp yum install ntp 安装好后&#xff0c;ntp 会自动注册成为服务&#xff0c;服务名称为 ntpd 2、查看当前 ntpd 服务的状态 systemctl status ntpd 3、启动 ntpd 服务、查看 ntpd 服务的状态 systemctl start ntpdsystemctl status ntpd 4、设置 ntpd 服务开机启…

转发forward与重定redirect

转发与重定向在网络通信和Web开发中扮演着不同的角色&#xff0c;它们之间的主要区别体现在以下几个方面&#xff1a; 一、定义与实现方式 转发&#xff1a; 在Web开发中&#xff0c;转发通常是由request请求发起的&#xff0c;是服务器内部的一种行为。转发时&#xff0c;服务…

使用 `Celery` 配合 `RabbitMQ` 作为消息代理,实现异步任务的调度、重试、定时任务以及错误监控等功能

python基础代码、优化、扩展和监控的完整示例。此示例使用 Celery 配合 RabbitMQ 作为消息代理&#xff0c;实现异步任务的调度、重试、定时任务以及错误监控等功能。 项目结构 我们将项目结构组织如下&#xff0c;以便代码逻辑清晰且易于扩展&#xff1a; project/ │ ├──…

Unity3D UI 拖拽

Unity3D 实现 UI 元素拖拽功能。 UI 拖拽 通常画布上的 UI 元素都是固定位置的&#xff0c;我们可以通过实现拖拽接口&#xff0c;让 UI 元素可以被拖拽到其他位置。 拖拽接口 创建一个脚本 UIDrag.cs&#xff0c;在默认继承的 MonoBehaviour 后面&#xff0c;再继承三个接…

【LeetCode】【算法】394. 字符串解码

LeetCode 394. 字符串解码 题目描述 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字…

深度学习:预训练(Pre-training详解

预训练&#xff08;Pre-training详解 预训练&#xff08;Pre-training&#xff09;是深度学习和自然语言处理领域中一个核心概念&#xff0c;特别是在面对需要大规模参数模型的应用场景下。预训练涉及在通常是大规模且多样化的数据集上训练模型&#xff0c;目的是捕获广泛且通…

【新手入门软件测试--该如何分辨前后端问题及如何定位日志--前后端问题分辨与日志定位查询问题】

前后端问题分辨与日志定位查询 一、前端问题1. 页面无法加载2. 样式错乱3. API请求失败4. 数据格式错误5. 跨域请求问题 二、后端问题6. 表单验证失败7. 数据库连接失败8. 请求超时9. 权限问题10. JavaScript运行错误 三、日志查询的方法1. 查看日志文件2. 过滤关键字3. 实时查…

基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统

基于 SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架构建电器网上订购系统可以为用户提供一个方便快捷的购物平台。以下将详细介绍该系统的开发流程&#xff0c;包括需求分析、技术选型、数据库设计、项目结构搭建、主要功能实现以及前端页面设计。 需求分析 …

esp32学习:利用虫洞ESP32开发板,快速实现无线图传

我们的虫洞开发板&#xff0c;能够完美运行esp who AI代码&#xff0c;所以实现无线图传那是非常容易的&#xff0c;我们先看看examples目录&#xff1a; 里面有比较多的web例程&#xff0c;在这些例程下&#xff0c;稍作修改&#xff0c;就可以快速实现我的图传无线功能&#…

mac m1 docker本地部署canal 监听mysql的binglog日志

mac m1 docker本地部署canal监听mysql的binglog日志(虚拟机同理) 根据黑马视频部署 1.docker 部署mysql 1.docker拉取mysql 镜像 因为m1是arm架构.需要多加一条信息 正常拉取 docker pull mysql:tagm1拉取 5.7的版本. tag需要自己指定版本 docker pull --platform linux/x…

还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!

前言 程序员的终极追求是什么&#xff1f;当系统流量大增&#xff0c;用户体验却丝滑依旧&#xff1f;没错&#xff01;然而&#xff0c;在大量文件传输、数据传递的场景中&#xff0c;传统的“数据搬运”却拖慢了性能。为了解决这一痛点&#xff0c;Linux 推出了 零拷贝 技术&…

基于java+SpringBoot+Vue的微服务在线教育系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

【无标题】西安交通大学提出少锚点的端到端车道线检测算法Polar R-CNN

Abstract 车道线检测在自动驾驶中是一个关键且充满挑战的任务&#xff0c;特别是在实际场景中&#xff0c;由于车道线可能因其他车辆而被遮挡、形状纤细且长度较长&#xff0c;检测难度增大。现有基于锚点的检测方法通常依赖于预设的锚点来提取特征&#xff0c;并随后对车道线…

【手撕排序3】归并排序

&#x1f343; 本系列包括常见的各种排序算法&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; &#x1f38a;个人主页:小编的个人主页 &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ✌️ &#x1f91e; &#x1f91f; &#x1f918; &#x1f91…

Vue中使用Antd中a-table实现表格数据列合并展示

原数据 根据需求实现当前两列数据中有相同数据时,合并列单元格 实现 源码 数据 const dataSource = ref([{id: 1,pl: "冰箱",zznd: "P1",sm: "说明说明说明1",dw: "台",gs: "1",dj: "100"},{id: 1,pl: "冰…