博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四天
阅读量:5169 次
发布时间:2019-06-13

本文共 2798 字,大约阅读时间需要 9 分钟。

1、数据类型的定义

变量的定义
数据类型 变量名{标识符}
变量的赋值
变量名 = 值;
数据类型 变量名{标识符} = 值
标识符的命名规则:
1、字母 数字, 下划线
2、不能以数字开头
3、见名知义
4、不能重复命名定义
5、不能使用C语言关键字

常量的定义

const 数据类型 常量名
#define 常量名 值
注意:
1、通过#define定义的常量是更具值来匹配数据类型的
2、const 修饰常量是不安全的可以通过指针修改

进制

二进制
缝二进一 0 1 、10 11 100
十进制 转二进制
除二反序 取余法 :将十进制每次除以二 去除余数 单数 1 双数0 按照结果倒叙 排列

二进制转化十进制

全职发:将二进制的各个位数从0位开始乘以二的N次幂 得到的结果相加

八进制

八进制是逢八进一。所有的数组都是0到7组成
除八反序取余发: 将十进制数每次除以八 取余数 案结果倒叙排列
八进制转化十进制
权值法

八进制转化二进制

8421法则:
参照表:
八进制 二进制
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
10 1000

计算器 》程序员 》由上到下 HEX 16进制 DEC 10进制 OCT八进制 BIN二进制

 

进制在程序中打印:
int a=10; //十进制中的10
int b=010;//八进制中的10 咋程序中定义一个八进制数需要在书前面加上0
int c=0x10;//十六进制中的10 在程序中定义一个十六进制需要在数前面加上0x区分
int d =0X10;//十六进制中的10在程序中定义一个十六进制的数需要在前面加上0X区分
注意:在程序中没有办法表示一个二进制数
%d将数据按照十进制输出
%o将数据按照八进制输出
%x将数据按照十六进制小写输出
%X将数据按照十六进制大写输出

讲一个有符号的整形数据 可以分为两部分 一部分是符号位 一部分是数字位、

无符号数据类型只包含数字部位
signeg int a = 1986(有符号的标识signed可以不用写)
11111000010
10
1010
-1986
1int a =1986;
1986的原码:0000 0000 0000 0000 0000 0111 1100 0010
-1986的原码:1000 0000 0000 0000 0000 0111 1100 0010

1986的反码: 0000 0000 0000 0000 0000 0111 1100 0010

-1986的反码:1111 1111 1111 1111 1111 1000 0011 1101

1986的补码: 0000 0000 0000 0000 0000 0111 1100 0010

-1986的补码:1111 1111 1111 1111 1111 1000 0011 1101
1 0000 0000 0000 0000 0000 0000 0000 0000

溢出: 在数据进行操作的时候会导致 超出数据类型大小,会向前位进1操作多余原始数据类型大小,会被系统自动舍弃保留从后面开始数据类型大小的位数

10 + 20

0000 1010
0001 0100
0001 1110

-10 + -20

原码:1000 1010
反码:1111 0101
补码:1111 0110

原码:1001 0100

反码:1110 1011
补码:1110 1100

1111 0110

1110 1100
1110 0010 补码
11110 0001 反码
1001 1110 原码 16+8+4+2=-30
练习:用生日1987 -326
1将10进制转化为2进制
1987:0000 0000 0000 0000 0000 0111 1100 0011
-236:0000 0000 0000 0000 0000 0001 0100 0110
2、加符号将数据变为原码
1987:0000 0000 0000 0000 0000 0111 1100 0011
-236: 1000 0000 0000 0000 0000 0001 0100 0110
3、 转化为反码
1987:0000 0000 0000 0000 0000 0111 1100 0011
-236:1111 11111111 1111 1111 1110 1011 1001
4、将反码+1转化为补码
1987:0000 0000 0000 0000 0000 0111 1100 0011
-236:1111 11111111 1111 1111 1110 1011 1010
5、计算补码
1987:0000 0000 0000 0000 0000 0111 1100 0011
-236:1111 11111111 1111 1111 1110 1011 1010
结果:1 0000 0000 0000 0000 0000 00001000 0010

、将数据转化为10进制

无符号
unsigned int a = 1986
无符号:1111 1111 1111 1111 1111 1111 1111 1111
取值:0-4294967295(2^32-1)

有符号

int a= 1986
0111 1111 1111 1111 1111 1111 1111 1111=2147483647
原码:1111 1111 1111 1111 1111 1111 1111 1111=-2147483647
反码:1000 0000 0000 0000 0000 0000 0000 0000
补吗:1000 0000 0000 0000 0000 0000 0000 0000 =-0

4.sizeof()注意:根据32位操作系统获取的

求出数据类型在内存中站的大小(byte)
int valuo =sizeof(变量名)
int value = sizeof(数据类型);sizeof 数据类型
char(字符型)< short (短整型)2字节< =int(整型)4字节|float(单精度浮点型)|long(长整型)8 字节|
long long(长长整型)|double(双精度浮点型)

输出和输入
输出字符的两种方式
1 printf(“%c”,变量)
2 putchar(字符)
输入字符的方式
1 scanf(“%c”,&b变量)
2 getcchar(字符)

char 1B =8 bit

0x7f

0111 1111
0000 0010
1000 0001

转载于:https://www.cnblogs.com/yi99/p/10691829.html

你可能感兴趣的文章
.NET:CLR via C# Assembly Loading
查看>>
CentOS安装rar及用法
查看>>
TYVJ-P1864 守卫者的挑战 题解
查看>>
Jzoj5455【NOIP2017提高A组冲刺11.6】拆网线
查看>>
特定字符序列的判断(1028)
查看>>
华为面试
查看>>
平衡二叉树(AVL Tree)
查看>>
【BZOJ3295】[Cqoi2011]动态逆序对 cdq分治
查看>>
【CF799E】Aquarium decoration 线段树
查看>>
大运飞天 鲲鹏展翅
查看>>
从ECMA到W3C
查看>>
软件工程--第十六周学习进度
查看>>
yii2 ActiveRecord多表关联以及多表关联搜索的实现
查看>>
搜狗输入法安装--ubuntu
查看>>
ps/2接口键盘的输入及显示
查看>>
Swift———a Glance(极客学院)笔记
查看>>
【poj3294-不小于k个字符串中最长公共子串】后缀数组
查看>>
java如何获取其它用户登录的真是IP地址
查看>>
Jquery通过指定层次关系获取元素
查看>>
c# for 和 foreach 的区别
查看>>