c语⾔怎么输出8字节⼆进制,C语⾔⼆进制、⼋进制、⼗六进制printf怎么输出字符
整数书写和输出
整数是我们⽣活中常⽤的数据类型,也是编程中常⽤的⼀种数据,C语⾔⽤int关键字来定义整数变量(int 是 integer 的简写)。
在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。
signed:有符号的,可以表⽰正数和负数。
unsigned:⽆符号的,只能表⽰正数,例如数组的下标、⼈的⾝⾼等。
short:短的,现在主流的64位操作系统下,整数占⽤内存4个字节,使⽤ 4
个字节保存较⼩的整数绰绰有余,会空闲出两个字节来,这些字节就⽩⽩浪费掉了。在C语⾔被发明的早期,或者在单⽚机和嵌⼊式系统中,内存都是⾮常稀缺的资源,所有的程序都在尽可能节省内存。
long:长的,更长的整数。
⼀、⼆进制、⼋进制、⼗六进制整数的书写
⼀个数字默认就是⼗进制的,表⽰⼀个⼗进制数字不需要任何特殊的格式。但是,表⽰⼀个⼆进制、⼋进制或者⼗六进制数字就不⼀样了,为了和⼗进制数字区分开来,必须采⽤某种特殊的写法,具体来说,就是在数字前⾯加上特定的字符,也就是加前缀。
1、⼆进制
⼆进制由 0 和 1 两个数字组成,使⽤时必须以0b或0B(不区分⼤⼩写)开头。
以下是合法的⼆进制:
int a = 0b101; // 换算成⼗进制为 5
int b = -0b110010; // 换算成⼗进制为 -50
int c = 0B100001; // 换算成⼗进制为 33
以下是⾮法的⼆进制:
int m = 101010; // ⽆前缀 0B,相当于⼗进制
int n = 0B410; // 4不是有效的⼆进制数字
请注意,标准的C语⾔并不⽀持上⾯的⼆进制写法,只是有些编译器⾃⼰进⾏了扩展,才⽀持⼆进制数字。换句话说,并不是所有的编译器都⽀持⼆进制数字,只有⼀部分编译器⽀持,并且跟编译器的版本有关系。
2、⼋进制
⼋进制由 0\~7 ⼋个数字组成,使⽤时必须以0开头(注意是数字 0,不是字母 o)。
以下是合法的⼋进制数:
int a = 015; // 换算成⼗进制为 13
int b = -0101; // 换算成⼗进制为 -65
int c = 0177777; // 换算成⼗进制为 65535
以下是⾮法的⼋进制:
int m = 256; // ⽆前缀 0,相当于⼗进制
int n = 03A2; // A不是有效的⼋进制数字
3、⼗六进制
⼗六进制由数字 0\~9、字母 A\~F 或a\~f(不区分⼤⼩写)组成,使⽤时必须以0x或0X(不区分⼤⼩写)开头。
以下是合法的⼗六进制:
int a = 0X2A; // 换算成⼗进制为 42
int b = -0XA0; // 换算成⼗进制为 -160
int c = 0xffff; // 换算成⼗进制为 65535
以下是⾮法的⼗六进制:
int m = 5A; // 没有前缀 0X,是⼀个⽆效数字
int n = 0X3H; // H不是有效的⼗六进制数字
4、需要注意的坑
在现实⽣活和⼯作中,我们在写⼗进制数的时候,为了对齐或其它原因,在数值前⾯加0是⽆关紧要的,但是,在C语⾔中,不要在⼗进制数前加0,会被计算机误认为是⼋进制数。
⼆、⼆进制、⼋进制、⼗六进制整数的输出
下表是各种进制整数的输出格式。
细⼼的读者可能会发现,上表中没有⼆进制的输出格式,虽然部分编译器⽀持⼆进制数字的书写,但是却不能使⽤printf函数输出⼆进制数。您可以编写函数把其它进制数字转换成⼆进制数字,并保存在字符串中,然后在printf 函数中使⽤%s输出。
⽰例:
/*
* 程序名:book.c,此程序⽤于演⽰⼆进制、⼋进制、⼗六进制整数的输出。
* 作者:C语⾔技术⽹(www.freecplus) ⽇期:20190525。
*/
#include
int main()
{
int ii=100; // 定义变量ii,赋值⼗进制的100。
printf("⼗进制输出结果:%d\n",ii); // ⼗进制输出结果:100
printf("⼋进制、⽆前缀输出结果:%o\n",ii); // ⼋进制、⽆前缀输出结果:144
printf("⼋进制、有前缀输出结果:%#o\n",ii); // ⼋进制、有前缀输出结果:0144
printf("⼗六进制、⽆前缀输出结果:%x\n",ii); // ⼗六进制、⽆前缀输出结果:64
printf("⼗六进制、有前缀(⼩写)输出结果:%#x\n",ii); // ⼗六进制、有前缀(⼩写)输出结果:0x64 printf("⼗六进制、⽆前缀输出结果:%X\n",ii); // ⼗六进制、⽆前缀输出结果:64
printf("⼗六进制、有前缀(⼤写)输出结果:%#X\n",ii); // ⼗六进制、有前缀(⼤写)输出结果:0X64
}
四、版权声明
C语⾔技术⽹原创⽂章,转载请说明⽂章的来源、作者和原⽂的链接。
作者:码农有道
如果这篇⽂章对您有帮助,请点赞⽀持,或在您的博客中转发此⽂,让更多的⼈可以看到它,谢谢
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论