c语言数据类型(一)
(强数据类型)
1.常量
常量是程序中不可变的量
10为常量
两种常量
#define 定义宏常量
const
#对于#define 类型的常量,c语言的习惯是常量名称大写, 对于普通const常量以及变量,一般以小写结合大写的方式
#include <stdio.h> int main()
{
printf("%d", );
return ;
}
#include <stdio.h> #define MAX 10 //定义一个宏常量 值为10
int main()
{
printf("%d", MAX);
return ;
}
#include <stdio.h> #define MAX 10 //定义一个宏常量 值为10
int main()
{
//MAX = 200; //等号左边必须为变量,不能为常量,常量的值不能修改
printf("%d", MAX);
return ;
}
#include <stdio.h>
int main()
{
const int a = ;
printf("%d", a);
return ;
}
以上为整数常量
字符串 常量
#include <stdio.h>
#define STRING "hello world\n";
int main()
{
const char * str = "hello c";
}
2. 二进制 位 字节 字
一个位只能表示 0 1 两种状态 bit 1位位1bit
一个字节为八个二进制 8位 BYTE 8个bit一个字节
500GB B为BYTE 10Mb bit
1个字 2个字节 简称WORD
2个字为双字 ZWORD
0 八进制 0x 16进制


原码 反码 补码
整数占 4个字节 以下只写了 1个字节举例子




sizeof 关键字
是c语言关键字,功能是求指定数据类型所占用的字节数。
#include <stdio.h>
int main()
{
printf("%d\n", sizeof());
return ;
}
32位(bit)操作系统返回的为4 最大的存储的数字 2(32-1) 的数字
size_t 类型
int类型
int 常量变量
int 是32位的一个二进制整数,在内存中占据4个字节‘’
%d , 输出一个有符号的10进制整数
%u , 代表输出一个无符号的10进制的整数
int main()
{
printf("%x\n", 0x10);//输出10
printf("%x\n", );//输出十进制10对应得十六位a
printf("%x\n", 0xa);//输出a
return ;
}
#include <stdio.h>
int main()
{
printf("%x\n", 0x10);//输出10
printf("%x\n", );//输出十进制10对应得十六位a
printf("%x\n", 0xa);//输出a
printf("%x", -);
return ;
}
/*
printf("%x", -7); 输出 fffffff9(这是-7的补码转换为16进制)
源码 10000000 00000000 000000000 00000111
反码 11111111 11111111 111111111 11111000
补码 11111111 11111111 111111111 11111001
*/
/*
-7
1000 0111 用有符号的眼光-7 无符号的眼光135
*/
%x 代表输出十六进制数 (十六进制不表达负数)
%X 用大写字母方式输出16进制数
%o 输出八进制数 (2进制与八进制不表达负数)
short、 long 、int 、 long long 、unsigned 、signed(有符号数)
short 为短整数 在32位操作系统占2个字节
long 代表长整数, 在32位系统下位4个字节 在64位系统下,windows 4个字节 Unix 为八个字节(不同的操作系统不一样)
int (32位系统以上)不论在什么情况下都是4个字节
long long 是64位 也就是八个字节的整数 对于32位操作系统cpu寄存器位32位的,计算longlong类型的数据, 效率很低
unsigned 无符号的数,可以加在任意整数类型后面
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
printf("%d\n", sizeof(b));//
return ;
}
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
printf("%d\n", sizeof(c));//
return ;
}
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
unsigned int d = ;
printf("%d\n", sizeof(d));//
return ;
}
整数溢出
一个整数计算的时候超过整数能够容纳的最大单位后,整数会溢出,溢出的结果是高位舍弃。
当一个小的整数复制给大的整数,符号位不会丢失,会集成
unsigned short abc = 0xffff;
abc = abc + ;
printf("%d\n", abc);//
return ;
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
unsigned int d = ;
printf("%d\n", sizeof(d));// unsigned short abc = 0xffff;
//abc = abc + 1;
//printf("%d\n", abc);// abc = abc + ;
printf("%d\n", abc);// abc = ;
abc = abc - ;
printf("%u\n", abc);// int i1 = 0x12345678;
abc = i1;
printf("%x\n", abc);//5678 short abc1 = -;
//1000 0000 0000 0010
//1111 1111 1111 1101
//1111 1111 1111 1110(-2)
//1111 1111 1111 1111 1111 1111 1111 1110 i1 = abc1;
printf("%x\n", i1);//fffffffe unsigned short abc2 = ; abc2 = abc2 - ;
//00000000 00000000
//10000000 00000001
//11111111 11111110
//11111111 11111111(65535)
printf("%d\n", abc2);//65535 //00000000 00000000 00001100
//10000000 00000000 00000000 00001010
//11111111 11111111 11111111 11110110
return ; }

内存都是以字节为单位的
1个整数,4个字节
大端对齐 与小端对齐
对于arm,intel 这种x86 构架的复杂指令CPU ,整数在内存是倒着放的,低地址放高位,高地址放低位, 小端对齐
但对于uniux服务器的CPU,更多的是采用大端对齐的方式存放整数

c语言数据类型(一)的更多相关文章
- C语言数据类型的理解
数据类型的定义: 作为一种语言,必然有所谓的语言组成要素,就像日常生活中人们之间的交流一样,首先会有字,字再成词组,再来就是句子,后来呢就是段落等等.当然不同的字,词,句这些在一起,就会有不同的表达效 ...
- R语言数据类型
R语言数据类型[转!!]Zhao-Pace https://www.cnblogs.com/zhao441354231/p/5970544.html R语言用来存储数据的对象包括: 向量, 因子 ...
- Go语言 数据类型,流程控制
Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...
- C语言数据类型_02
C语言数据类型:
- R语言 数据类型
R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...
- C语言数据类型取值范围
一.获取数据类型在系统中的位数 在不同的系统中,数据类型的字节数(bytes)不同,位数(bits)也有所不同,那么对应的取值范围也就有了很大的不同,那我们怎么知道你当前的系统中C语言的某个数据类型的 ...
- 一:c语言(数据类型和运算符)
#include <stdio.h> /*就是一条预处理命令,它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作.*/ int main() /*C程序就是执行主函数 ...
- -- c语言数据类型总结 --
C语言中的数据类型总结
- 第三课,T语言数据类型(版本TC5.0)
数据类型 TC综合开发工具里使用的是可变类型,就是在程序执行过程中,TC综合开发工具会自动把数据转换为需要的类型,转换失败会出现相应的提示但是在一些特殊的场景下,是需要做类型强制处理,那么这时就需要使 ...
- C语言数据类型
1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型.整形和长整形. 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位 ...
随机推荐
- ML(3)——线性回归
在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性 ...
- MFC message routine
现在维护的一个软件还是用mfc写的,最近被要加入一个功能弄得焦头烂额.主要现象就是加入的菜单的响应函数没被call到 上网搜索,在官方网站找到了不少资料 主要链接如下 https://msdn.mic ...
- js 去掉前后空格(正则表达式方法)
代码: ' aaa '.replace(/(^\s*)|(\s*$)/g, '')
- echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐)
出处:http://blog.csdn.net/kebi007/article/details/68488694
- 代码问题: 【ADNet】
[ADNet]: Yoo S, Yun K, Choi J Y. Action-Decision Networks for Visual Tracking with Deep Reinforcemen ...
- Sqoop 导入及导出表数据子集命令详解
Sqoop命令详解 1.import命令 案例1:将mysql表test中的数据导入hive的hivetest表,hive的hivetest表不存在. sqoop import --connect j ...
- Hanlp分词实例:Java实现TFIDF算法
算法介绍 最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理. 关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013 ...
- mysql的变量信息详解
mysql的变量详解 执行show variables命令可以查看MySQL服务器的变量 变量名 默认值 说明 对应的配置文件参数 auto_increment_increment 1 自增长类型的初 ...
- PostgreSQL的下载安装
下载地址:http://www.postgres.cn/download 下载地址:http://www.filehorse.com/download-postgresql-64/ 下载地址2:htt ...
- 测试ik分词效果
POST: http://192.168.1.12:9200/ddycdr/_analyze?analyzer=ik_max_word body: {"text":& ...