首页 > 其他分享 >C语言中的二进制数、八进制数和十六进制数

C语言中的二进制数、八进制数和十六进制数

时间:2023-07-27 11:23:53浏览次数:38  
标签:十六进制 数字 int C语言 二进制 八进制 十进制

C语言是一门使用数字的编程语言,其中包括了8进制和16进制的数字表示方法。这两种表示方法都可以用于整数和字符类型。

8进制表示法

8进制数字以数字0(零)和前缀0开头表示。例如,八进制数012表示为十进制的10。

以下是一些示例:

int x = 012; // 八进制的12,等价于十进制的10
int y = 077; // 八进制的77,等价于十进制的63
int z = 0100; // 八进制的100,等价于十进制的64

 

16进制表示法

16进制数字以前缀0x或0X开头表示。在16进制表示法中,除了数字0到9之外,还使用字母A到F(大小写均可)表示数字10到15。例如,十六进制数0x1A表示为十进制的26。

以下是一些示例:

int x = 0x1A; // 十六进制的1A,等价于十进制的26
int y = 0xFF; // 十六进制的FF,等价于十进制的255
int z = 0x10; // 十六进制的10,等价于十进制的16

 

二进制表示法

二进制由 0 和 1 两个数字组成,使用时必须以0b0B(不区分大小写)开头,例如:

//合法的二进制
int a = 0b101; //换算成十进制为 5
int b = -0b110010; //换算成十进制为 -50
int c = 0B100001; //换算成十进制为 33
//非法的二进制
int m = 101010; //无前缀 0B,相当于十进制
int n = 0B410; //4不是有效的二进制数字

读者请注意,标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。换句话说,并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系。

下面是实际测试的结果:

    • Visual C++ 6.0 不支持。
    • Visual Studio 2015 支持,但是 Visual Studio 2010 不支持;可以认为,高版本的 Visual Studio 支持二进制数字,低版本的 Visual Studio 不支持。
    • GCC 4.8.2 支持,但是 GCC 3.4.5 不支持;可以认为,高版本的 GCC 支持二进制数字,低版本的 GCC 不支持。
    • LLVM/Clang 支持(内嵌于 Mac OS 下的 Xcode 中)。

 

八进制和十六进制的应用

在C语言中,使用八进制和十六进制可以使代码更易读和紧凑。例如,当你需要在代码中使用特定的比特模式时,八进制可以帮助你更好地表示它们。而对于位运算、颜色值、内存地址等需要使用16进制的场景,16进制可以更好地表示这些值。

另外,八进制和十六进制也常常用于编写常量。例如,常量0xFF表示一个字节的所有位都被设置为1,而常量077表示一个字节的前六位都被设置为1。

总结

在C语言中,八进制和十六进制是表示数字的两种常用方式。使用八进制和十六进制可以使代码更易读和紧凑,并且可以方便地表示一些特定的值。在编写C程序时,应该充分利用这两种表示法。

标签:十六进制,数字,int,C语言,二进制,八进制,十进制
From: https://www.cnblogs.com/FBsharl/p/17584443.html

相关文章

  • C语言中的关系操作符
    C语言中的关系操作符C语言用于比较的表达式,称为关系表达式(relationalexpression),里面使用的运算符就称为"关系运算符"(relationaloperator),主要有下面6个。>大于运算符>=大于等于运算符<小于运算符<=小于等于运算符==相等运算符!=不相等运算符下面是一些例子。a==b;......
  • C语言中的逻辑操作符
    C语言中的逻辑操作符逻辑操作符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符。!:逻辑取反运算符(改变单个表达式的真假)。&&:与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。||:或运算符,就是或者的意思(两侧至少有一个表达式为真,则为真,否则为假)。注:C......
  • C语言基础
    主函数1.1main函数main函数参数一共有三个:1.intargc整型变量2.char*argv[]字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串3.char*envp[]字符串数组intmain(void)//无参数形式{return0;}intmain(intargc,char*argv[])//带形式参数{return0;}C语言程......
  • c语言学习9
    一、字符串字符:人能看得懂的符号或图案,在内存中以整数形式存储,根据ASCII码表中的对应关系显示出相应的符号或图案'\0'0空字符'0'48'A'65'a'97串:是一种数据结构,存储类型相同的若干个数据对于串型结构的处理是批量性的,会从头开始直到遇到结束标志......
  • 基于C语言的P2P软件实现
    完整资料进入【数字空间】查看——搜索"writebug"摘要Peer-to-Peer网络毫无疑问是当今的热点技术主题。Napster和Gnutella的广泛使用证明了peer-to-peer应用的强大潜力。P2P(或者说peer-to-peer)网络是一种基于操作上下文的网络模型,任何一个节点都同时作为客户机和服务器。J......
  • day10 10.1 C语言基础之编译器安装
    【一】学习C语言的原因一般公司的apk基于Java实现的加密jadx反编译java,分析代码NB公司的的apk,基于Java+C语言实现加密(JNI开发)加密一般使用C语言开发,在安卓项目中使用Java调用C语言开发的动态链接库文件jadx反编译java,分析代码看不到加密ida反编译c语言,分析代码......
  • C语言之函数
    函数一个c语言项目只能有一个main函数函数是什么?函数是一段可重复使用的代码块,用于执行特定的任务。它接受输入参数,执行一系列操作,并返回一个值。在C语言中,函数由函数头和函数体组成。函数头包含函数的返回类型、函数名和参数列表。函数体包含函数的具体实现代码。通过调......
  • C语言分支与循环(8)--- 练习题(1)
    一.练习1.编写一段代码计算n的阶乘提示:如5的阶乘就是5*4*3*2*1以此类推例如以下代码:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<windows.h>intmain(void){ intn; intret=1; printf("请输入n的值:"); scanf("%d",&n); for(inti=1;i<......
  • 解决C语言编程常见问题,轻松提高编程水平!
    遇到错误时应该如何处理   当遇到错误时,不要惊慌失措。首先要查看错误提示信息,如果是中文提示就直接阅读,如果是英文提示则进行翻译理解。根据错误提示定位到错误发生的代码行数,通常错误就在该行的上下几行代码中。不要偷懒,马上向他人询问问题,这样对自己负责任。成长需要经历......
  • 初识C语言——7扫雷(低配)
    主程序——text.c:#define_CRT_SECURE_NO_WARNINGS1#include"game.h"game(){ charHide[ACRS][COLS]={'0'}; charShow[ACRS][COLS]={'0'}; //数组初识化 Initialize(Hide,ACRS,COLS,'0'); Initialize(Show,ACRS,......