c语言编程中%d怎么运用的,C语言格式符%d与%D的区别
在读此文之前,请先阅读《有符号整数与无符号整数》:
一、原码、反码、补码
数在计算机里是以二进制来表示的。数分为有符号数和无符号数。对于有符号数来说,最高位用来表示符号,1为负,0为正。
原码:一个数本身的二进制形式。
例(1):00000001表示1
例(2):10000001表示-1
反码:正数的反码是它本身,负数的反码是原码的最高位(符号位)不变,其他位取反。
例(3):00000001的反码是00000001
例(4):10000001的反码是11111110
补码:计算机中存储的就是数的补码形式。正数的补码和它的原码、反码相同;负数的补码是反码加1。
例(5):00000001的补码是00000001
例(6):10000001的补码是11111111
原码与补码的转化规律:
(1)正数
补码=原码=反码
(2)负数
补码=原码取反+1
原码=(补码-1)取反
二、C语言中%d与%D的区别
C语言中,%d是有符号的整型格式符,%D是Mac系统下的无符号整型格式符,相当于Windows系统下的%u。Windows下没有%D格式符。
例(1):-3
-3的二进制原码是10000000,00000000,00000000,00000011,
它在计算机中的储存形式(补码)为11111111,11111111,11111111,11111101
对应的无符号数为1 * 2^31 + 1 * 2^30 + …… + 1 * 2^2 + 1 * 2^1 + 0 * 2^0 = 4294967293
例(2):-27
-27的二进制原码是10000000,00000000,00000000,00011011,
它在计算机中的储存形式(补码)为11111111,11111111,11111111,11100101
对应的无符号数为1 * 2^31 + 1 * 2^30 + …… + 1 * 2^5 + 0 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 4294967267
例(3):-243
-243的二进制原码是10000000,00000000,00000000,11110011,
它在计算机中的储存形式(补码)为11111111,11111111,11111111,00001101
对应的无符号数为1 * 2^31 + 1 * 2^30 + …… + 0 * 2^7 + 0 * 2^6 + 0 * 2^5 + 0 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1+ 1 * 2^0 = 4294967053
三、编程验证
现在,编写C程序来对上面三个例子的计算结果进行验证。由于本人是在Windows下编写的程序,所以程序里用%u而不是%D。
代码:
#include
int main(int argc, const char * argv[])
{
int a,b,c;
a = -3;
b = -27;
c = -243;
printf("有符号a=%d\t无符号a=%u\n", a, a);
printf("有符号b=%d\t无符号b=%u\n", b, b);
printf("有符号c=%d\t无符号c=%u\n", c, c);
return 0;
}
运行结果:
c语言编程中%d怎么运用的,C语言格式符%d与%D的区别相关推荐
- 数学在c语言编程中的历史,用计算机C语言编程解古代数学题
用计算机C语言编程解古代数学题 C语言广泛的应用于基础软件.桌面系统.网络通信.音频视频.游戏娱乐等诸多领域.是世界上使用最广泛的编程语言之一本文由论文联盟http://www.LWlm.cOm收集整 ...
- c语言编程中精度eps是什么,c语言eps是什么意思
在C语言中,eps指的是精度.主要用于浮点数运算中,因为C语言浮点数存储的是近似值. 计算会引起误差,所以一般计算低于某个值,就没有意义了,这个阈值就是eps,也就是精度. eps是在函数程序中事先说 ...
- c语言编程中野指针错误,小心C语言野指针
指针是C语言一个很强大的功能.然而所谓成也萧何,败也萧何,用好了指针会使程序大放异彩,用错了指针轻者只是报个错,重者可能整个系统都崩溃了.本篇我们来谈谈指针一种错误的使用方法"野指针&quo ...
- c语言中错误executing,C语言编程中常见问题解读.doc
C语言编程中常见问题解读 为什么vc6打开的文件却不能编译1 为什么一个vc6工程中有两个main函数不能编译成功?我想写两个程序怎么办?2 为什么v6不能编译程序,生成信息说compile和link ...
- 《C语言解惑》—— 第一篇 C语言编程中的对与错
本节书摘来自华章出版社<C语言解惑>一 书中的第1章,第1.1节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 C语言编程中的对 ...
- 请描述定时器初值的计算方式_单片机C语言编程中定时器初值计算的两种方法...
单片机C语言编程中,定时器的初值对于初学者真的是比较不好计算,因此我总结了以下几种方法. 第1种方法: #define FOSC 11059200L //晶振的频率 #define TIMS (655 ...
- 关于C语言编程中include的用法
关于C语言编程中include的用法 1 iostream与iostream.h的区别: #include <iostream.h> // 这个就是1998年标准化以后的标准头文件 #in ...
- c语言在数学方面的应用编程,浅谈数学在C语言编程中的应用.doc
浅谈数学在C语言编程中的应用 浅谈数学在C语言编程中的应用 [][]C语言对学习者的数学基础要求较高对一部分学生来说学好C语言有一定的困难.本文就本专业知识和自身对C语言的学习经验对数学在C语言编程中 ...
- c语言编译面板上总有个0,C语言编程中常见问题.doc
C语言编程中常见问题 为什么vc6打开的文件却不能编译1 为什么一个vc6工程中有两个main函数不能编译成功?我想写两个程序怎么办?2 为什么v6不能编译程序,生成信息说compile和link都正 ...
- c语言中回显,C语言编程中实现输入密码回显星号
C语言编程中实现输入密码回显星号 众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号. 或者,在安全性要求更高的某些程序中,什么都不显示.那么,在C语言中如何实现它呢? ge ...
最新文章
- seaborn系列 (7) | 核函数密度估计图kdeplot()
- 微软论文解读:用于视觉对话的多步双重注意力模型
- 200912阶段一C++友元、运算符重载
- mysql批量删除进程_小程序批量删除云数据库里的数据
- 一些设计上的基本常识
- 一行代码进行闰年的判断
- 计算机板卡设计仿真,电子技能训练(1-1)201492.ppt
- 从零开始学android:Activity初步
- 写个爬虫,爬图片,mzitu
- 串口通讯 电脑和dsp_高速DSP与PC实现串口通信的方法
- 互联网晚报 | 06月08日 星期三 | ​教育部回应高考试题疑泄露;​上海落户新规;字节跳动考虑出售得物少数股份...
- lazada数据分析采集软件,各国市场第一视角帮你分析!
- Android接入支付宝开发
- 苏州大学计算机科学考研科目,苏州大学 计算机科学与技术研究生考试科目和考研参考书目...
- 多思计算机组成原理实验八:简单模型机实验
- 后端得到Ip并解析其物理地址
- u盘不能拷贝超过4g的大文件吗?
- Flink事件时间、水印以及迟到数据处理的个人理解
- babylon 里面加gltf 模型
- airtest连接一个夜神多开器,提示“ADB指令执行失败”