数据类型 -- uint32_t 类型

整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。

----------------

数据类型 -- uint32_t 类型

数据类型 -- uint32_t 类型

1>. 在写程序时注意"无符号类型"的使用, 各种类型边界值的情况.
如:
a> 当某个数据不可能为负数时我们一定要考虑用以下类型:
unsigned char, unsigned int, uint32_t, size_t, uint64_t, unsigned long int,
b> 当有些数据你不知道是正负时一定不要用"a>"中的类型, 不然他永远也不可能为负.

c> 数据的边界值要多注意, 如:
uint32_t    a, b, c;
uint64_t    m;

m = a * b + c;
在该运算中可能出现错误, "a*b"的类型可能超过uint32_t的最大值,这时一定不要忘了类型转换.
m = ((uint64_t)a) * b + c;

2>. 在适当的时候要会自我定义数据类型.
我们都知道linux C开发中的常见扩展数据类型的定义有:uint8_t, uint16_t, uint32_t, uint64_t, size_t, ssize_t, off_t .... 他之所以要自己定义出数据类型是有道理的, 如: typdef unsigned int uint32_t; 表示uint32_t为32位无符号类型数据, 其实size_t也是32位无符号数据类型, 为什么不直接写"unsigned int"呢?
为了程序的可扩展性, 假如将来我们需要的数据大小变成了64bit时,我们只需要将typedef long long size_t就可以了, 不然我们可要修改好多好多的地方了.
这种设计我们同样可以应用到自己的开发中来,当自己设计一个int类型保存某种数据时,但你又没把握将来是不是要用long int时你可以引用一个自己定义的数据类型的啊!

stdint.h
-----------------------------
typedef unsigned int            uint32_t;

uint32_t.c
-----------------------------
#include <stdio.h>
#if 0      
#include <stdint.h>    // uint32_t
#endif

typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;

int main()
{
uint32_t a;
a = 12;
printf("a = %x\n", a);
printf("sizeof(a) = %d\n", sizeof(a));

uint64_t b;
b = 12;
printf("b = %x\n", b);
printf("sizeof(b) = %d\n", sizeof(b));
}

a = c
sizeof(a) = 4
b = c
sizeof(b) = 8

时间: 2024-10-08 08:30:34

数据类型 -- uint32_t 类型的相关文章

Javascript数据类型&mdash;&mdash;number类型

        ECMAScript规范中使用IEEE754格式来表示整数和浮点数.支持十进制.八进制以及十六进制.有一点注意的是八进制数字在严格模式下是无效的,这可能会影响到程序的正常运行. 避免浮点数等值判断:       众所周知,基于IEEE754进行数据计算会产生舍入误差,最为经典的例子: 0.1+0.2 = 0.30000000000000004 ; 0.15+0.15 = 0.3;        在实际开发中应尽量避免使用浮点数的等值判断. NaN:      关于NaN有两点特别

Java连载76-基础数据类型包装类型及其方法简介

一.java中八种基本数据类型对应的包装类型 基本数据类型      包装类型 byte                    java.lang.Byte short                   java.lang.Short int                      java.lang.Integer long                    java.lang.Long float                    java.lang.Float double  

javascript数据类型及类型的转换总结

javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮点类型 2,字符串类型 string string 类型 3,布尔类型 true   false 4,undefine类型 定义了变量没有赋值 5,数据对象类型 object 数据类型转换分为两种  自动转换,强制转换 自动转换也称着隐形转换 强制转换 paresInt()  paresString

马哥-python-课堂笔记12-python核心数据类型及类型显示转换

python的核心数据类型(内置)数字:int,long,float,complex(复数),bool(布尔型)字符:str,unicode列表:list字典:dict元组:tuple文件:file其他的类型:集合(set),frozenset(冻结集合),类类型,None其他文件类工具:pipes(管道),fifos(先进先出管道),sockets(套接字) 类型转换:内置函数,完成非字符串转化为字符型str():和print的输出的结果类似repr():表示的是精确值format():以特定

js最基础知识回顾3(字符串拼接,数据类型,变量类型,变量作用域和闭包,运算符,流程控制,)

一.javaScript组成     1.ECMAScript:解释器.翻译 ---------------------------------------------------------几乎没有兼容性问题     2.DOM:Document Object Model --------操作HTML的能力----document--------有一些兼容性问题     3.BOM:Browser Object Model -------------浏览器---------------wind

JavaScript 基本数据类型 与类型检测

一.[JavaScript 基本数据类型] JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型 "string"   "number"   "object"   "boolean"   "function"   "undefined" <1> string类型 属性: str.length var str = "123,ABC,900,rgy,r

数据类型与类型转

一.数据类型 定义: 数据类型=数据结构+数据操作,即数据类型包括明确数据的结构以及定义在这组数据所允许的操作. 例如: 我们经常使用int来定义整型数据,那么就必须明确以下三点,当然这些我们已经形成了一种惯性思维. A.数据集合:-2147483648~2147483647,范围内所有整数 B.数据关系:负数正数大,二比三小. C.数据操作:2+1等于3,除数不能为0,等四则运算操作. 数据集合与数据关系用来描述数据结构,数据结构+数据操作用来描述数据类型.因此在使用一个类型前,我们必须明确这

Python新手学习基础之数据类型——数字类型

创建一组数字 Python 的有以下几种内置数字类型: int,整型,比如:1.-2.598: float,浮点型,比如:0.0.-3.5.18.55: bool,布尔型,即True和False两个关键字,但他们的值实际上还是1和0,所以他们是可以进行加减的哦: complex,复数型(复数是数学术语),用a+bj或者complex(a,b)来表达,a.b都是浮点型.比如:3.5j.5-2j. 对数字进行运算 数字运算?有同学会说这不就是加减乘除(+ - * /)嘛,当然没错啦! 但在这里要讲的

mysql数据类型——时间类型

四种日期格式: 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值. YEAR         0000 YYYY 年  '2015' DATE         0000-00-00  YYYY-MM-DD     日期 '2015-04-24' TIME          00:00:00  HH:MM:SS        时间'12:25:36' DATETIME       0000-00-00 00:00:00