c语言数据类型与进制转换

一、 关键字

1.1、c语言的关键字共有32个

1.数据类型的关键字(12个)
char、short、int、long、float、double、unsigned、signed、struct、union、enum、void
2.控制语句关键字(12个)
if 、else、 switch、case、default、for、do 、while、break、continue、goto、return
3.存储类关键字
auto、extern、 register 、static、 const
4.其他关键字
sizeof、typedef、volatile

1.2、数据类型

数据类型的作用:编译器的预算对象(变量)分配的内存空间大小
在这里插入图片描述

1.2.1、数据类型的定义

变量的定义:
数据类型 变量名 【标识符】
变量的赋值:
方式一:变量名 = 值;
方式二:数据类型 变量名 【标识符】 = 值

常量的定义:
1.const 数据类型 常量名
2.【宏定义】#define 常量名 值
注意:
1.通过#define定义的常量是根据值来匹配数据类型的
2.const定义的常量是不安全 可以通过指针来修改

对应数据类型所有字符大小
int >> 4
float >> 4
char >> 1
double >> 8
short >> 2
long >> 4

二、进制

二进制:
  二机制是计算机技术中广泛使用的一种数制。二级制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是:“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
注意:在程序中没办法表示一个二进制数
二进制:二进制逢二进一,所有的数组是0、1组成的
十进制:
  十进制转二进制:除2反序取余法,将十进制数每次除以2 取出余数,按照结果倒序依次获取结果
  二进制转十进制:权值法 , 将二进制各个位数从0开始,乘以2的N次方,将各个位数的结果相加
八进制:八进制逢八进一,所有的数是0到7组成的
  十进制转八进制:除8反序取余法,将十进制数每次除以8取出余数,按照结果倒序依次获取结果
  八进制转二进制:

进制在程序打印

//十进制数
int a = 10;
printf("%d\n",a);
//八进制数 加零
int a = 010;
printf("%d\n",a);
//十六进制数 加零X
int a = 0X10;
printf("%d\n",a);

三、原码、反码和补码

对于正数来说,它的原码、反码、补码是一致的
原码:一个数的原码(原始的二进制码)有如下特征:
1.最高位作为符号位,0表示正,为1表示负
2.其他数值部分就是数组本身绝对值的二进制数
3.负数的原码是在其绝对值的基础上,最高位变为1
  原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但是当两个正数相减或不同符号数相加 时,必须比较两个数那个绝对值大,才能决定谁减谁, 才能确定结果是正还是负, 所以原码不便于加减运算

反码:
1.对于正数,反码与原码相同
2.对于负数,符号位不变,其它部分取反(1 变 0 ,0 变 1 )
反码运算也不方便,通常用作为求补码的中间过渡

补码:
1.对于正数、原码、反码、补码相同
2.对于负数,其补码为它的反码+1
3.补码符号位不动,其他位求反,最后整个数+1,得到原码

一个有符号的整型数据可以分为两部分,一部分是符号位,一部分是数字位。
signed int a = 10; (有符号位表示signed可以不用写)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值