一个字节就是8byte, 也就是2^8

一个字就是4Byte,也就是2^4

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

不同类型的取值范围

int8:   -128 ~ 127
int16:  -32768 ~ 32767
int32:  -2147483648 ~ 2147483647
int64:  -9223372036854775808 ~ 9223372036854775807
 
uint8:  0 ~ 255
uint16: 0 ~ 65535
uint32: 0 ~ 4294967295
uint64: 0 ~ 18446744073709551615

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

1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte
1Byte = 8Bit

Byte 又称为 字节,Bit 又称为 位,Bit 是内存中最小的单位

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

int8 / uint8:占8Bit = 占1Byte = 在内存中二进制表现形式为:00000000 00000000
 
int16 / uint16:占16Bit = 占2Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000
 
int32 / uint32:占32Bit = 占4Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 
int64 / uint64:占64Bit = 占8Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

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

int / uint 类型 的取值范围详解(二进制到十进制),以 int8 / uint8 为例:
int8占1个字节,1字节(byte)占8位(bit)
 
其中最高位代表符号位 1-负号;0-正号
 
那么最大数值(127)的二进制为:
0 1 1 1 1 1 1 1

换算成10进制为 从低位到高位开始计算:
 
0        1        1        1        1        1        1        1
0*2^7    +1*2^6   +1*2^5   +1*2^4   +1*2^3   +1*2^2   +1*02^1   +1*2^0
0        +64       +32     +16      +8       +4       +2       +1
=127
那么最小数值(-128)的二进制为:
1 0 0 0 0 0 0 0

-128的原码二进制为:
表达:10000000
反码:01111111
补码:01111111  +  00000001
原码:10000000
换算成10进制为 从低位到高位开始计算:
 
1        0        0        0        0        0        0        0
1*2^7    +0*2^6   +0*2^5   +0*2^4   +0*2^3   +0*2^2   +0*02^1  +0*2^0
128      +0       +0       +0       +0       +0       +0       +0
= 128 * -1
= -128
更好理解的解释:
1.int8占1个字节(Byte) 也就是8个二进制位(Bit)
2.每个二进制位 可以存储0 和 1 两个数 ,8个二进制位就有2^8 = 256种组合(可以存储256个数)
3.int8为有符号,所以正数和负数将平分256个数。256 / 2 = 128
4.负数为128个数 最小值为-128 
5.正数为128个数,0占一个数 最大值为+127
 
如果是uint8(8Bit无符号-没有负数) 2^8 = 256
0 占一个数 ,所以最大是255

其他位int / uint计算方法与int8 / uint8相同
---------------------------------------------------------------------------------------------------------------------------------

Long

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

1. long 是C语言的一个关键字,代表一种数据类型,中文为长整型。

2. long是long int的简写,也就是说,在C语言中long int类型和long类型是相同的。

3. 每个long型占4个字节,在32位编译系统下,long和int占的空间是相同的。这也导致了long型变量使用的越来越少了。

4. long型可以表示的整型数字范围为-2,147,483,648 ~ 2,147,483,647, 即-2^32 ~ 2^32-1。

在用在C的格式化输入输出时,long型的格式化字符为"%ld"。

5. long同其它整型类型一样,可以同unsigned 联合使用,形成unsigned long,即无符号长整型, 其格式化字符为"%lu"。

6. 在部分编译器下,比如gcc, 两个long合用,即long long类型,表示C语言目前最长的系统整型类型,每个long long类型占8字节,64位。其格式化字符为"%lld"

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

Int

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

int数据类型在内存中占用了4个字节byte(4*8个bit比特)就是32个比特位。第一位代表int的正负,后31位存储数据。当int取最大值时相当于31个1(1*2^30+1*2^29+1*2^28+....+1*2^0)可以转化为有32位切为1其他为0之后再减去1(1*2^31-1)。换算一下大概是21亿多。

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

char

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

1.取值范围相同
字符分类两类,一种是无符号字符 unsignedchar,一种是有符号的字符 char ,他们取值范围不同:

无符号字符unsigned char取值范围:0~255
有符号字符char取值范围:-128~127

2.字符串由多个字符构成
字符串和字符都可以使用 char 表示,注意使用的区别:

//字符串
char* p = "123"; //字符串使用双引号
//字符
char  p = '1';//字符使用单引号
char  p = '2';//字符使用单引号
char  p = '3';//字符使用单引号

3.字符串和字符使用 printf 函数
字符串和字符需要使用不同的占位符:字符串使用 %s 作为占位符,字符使用 %c 作为占位符;

printf("%c ", 'A');
printf("%s ", "A");

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

不同平台整型字节长度区别

平台/类型 char short int long long long
16位 1 2 2 4 8
32位 1 2 4 4 8
64位 1 2 4 8 8

Long, int, uint, char 等整型总结相关推荐

  1. C语言字符char和整型int的关系

    C语言并无char类型,就是用Int表示char的!char占一个字节,在C语言所有类型中最小. char *占4字节(32位),8字节(64位) 在C语言中,实际上字符型数据在内存中是以二进制形式存 ...

  2. C语言字符型char和整型int的关系和示例

    文章目录 1.字符就是整数 2.为什么C语言需要字符类型 3.获取视频教程 4.版权声明 1.字符就是整数 字符和整数没有本质的区别.可以给 char变量一个字符,也可以给它一个整数:反过来,可以给 ...

  3. 【小技巧】字符char与整型int的相互转换

    char转int char与int的相互转化,联想ASCII码,字符'0'对应的值为48,所以不能直接加减' ' char ch='9'; int ch_int=ch-'0';//此时ch_int=9 ...

  4. 26.【C语言】字符串转无符号整型unsignedint、字符串转有符号整型int、无符号整型unsignedint转字符串、有符号整型转字符串(5_task)

    算法思想: 1. 字符串转无符号整型unsignedint 初始化一个字符串str:num用于存放当前转换的整型数,初始化为0.对字符串str中的每个字符进行判断,一旦扫描到当前字符在数字字符的范围之 ...

  5. mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑

    以下试以整型(int)抛砖引玉: 一:MySQL5 以MySQL5版本为例,大多数管理员可能把自增数字.或者其它应用数字字段的列属性设置为int类型,int占用4个字节,而int又分为无符号型和有符号 ...

  6. signed int 数据范围_整型数据

    1.整型数据的分类 (1)基本整型(int型) 编译系统分配给int型数据2个字节或4个字节(由具体的C编译系统自行决定).如Turbo C 2.0为每一个整型数据分配2个字节(16个二进制位),而V ...

  7. java int转无符号_Java中int或long等整型数值如何转换为无符号整数

    Java8 为 Integer.Long包装类增加了如下方法: static  String  toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对 ...

  8. python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)

    numpy中的数据类型转换,不能直接改原数据的dtype! 只能用函数astype().否则你的元素个数可能会倍增或倍减,数值也会对应不上! 第一种情况: import numpy as npa = ...

  9. C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等)

    目录 1.数据类型的分类 2.基本整型 int 3.短整型 short int 4.长整型 long int 5.双长整型 long long int 6.字符型 char 7.布尔型 bool 1. ...

最新文章

  1. 搭建本地YUM源服务器
  2. 如何使用Worktile进行敏捷项目开发管理
  3. 地铁进出站是一站怎么办_高铁坐过站?别担心,这样能免费送回
  4. C++程序员学Python:C与Python进行交互
  5. vue.js 三(数据交互)isomorphic-fetch
  6. java 微信支付实现
  7. 选购安防交换机时需要注意哪些误区?
  8. 在Windows 下如何使用 AspNetCore Api 和 consul
  9. 《solidity学习笔记》chapter 2-solidity基础知识
  10. python连接access2007_使用Python / pyodbc插入Access DB
  11. PDF417数据容量
  12. 基于Profinet网络的风力发电机组齿轮箱温度采集系统
  13. python线性链表
  14. window VNC Viewer设置屏幕分配率
  15. Oracle数据库练习题及答案大全(包含数据库脚本)
  16. pdfmake支持html,pdfMake前端导出pdf
  17. 微信小程序之小程序审核
  18. 应该怎样学习Unity3D
  19. 优秀网页设计:25个精美的旅游网站设计示例
  20. GAMES101 作业0 环境配置 PC下简单配置i

热门文章

  1. 北京理工大学计算机学院研究生宿舍几号楼,2021北京理工大学宿舍条件和新生宿舍图片及分配规则分享...
  2. 冰冰学习笔记:二叉树的进阶OJ题与非递归遍历
  3. ET学习笔记之五星麻将0
  4. 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 概述
  5. 手写 RPC(一)基于 BIO,深入理解远程调用原理
  6. 大专计算机基础应用毕业设计,大专计算机毕业论文
  7. Javaweb框架 思维导图
  8. 数值分析——求方程解的不动点迭代法和斯特芬森法(Python实现)
  9. 《现代机器人学:机械,规划与控制》第十一章——机器人控制 11.1控制系统概述
  10. JAVA学习生涯开始