Long, int, uint, char 等整型总结
一个字节就是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 等整型总结相关推荐
- C语言字符char和整型int的关系
C语言并无char类型,就是用Int表示char的!char占一个字节,在C语言所有类型中最小. char *占4字节(32位),8字节(64位) 在C语言中,实际上字符型数据在内存中是以二进制形式存 ...
- C语言字符型char和整型int的关系和示例
文章目录 1.字符就是整数 2.为什么C语言需要字符类型 3.获取视频教程 4.版权声明 1.字符就是整数 字符和整数没有本质的区别.可以给 char变量一个字符,也可以给它一个整数:反过来,可以给 ...
- 【小技巧】字符char与整型int的相互转换
char转int char与int的相互转化,联想ASCII码,字符'0'对应的值为48,所以不能直接加减' ' char ch='9'; int ch_int=ch-'0';//此时ch_int=9 ...
- 26.【C语言】字符串转无符号整型unsignedint、字符串转有符号整型int、无符号整型unsignedint转字符串、有符号整型转字符串(5_task)
算法思想: 1. 字符串转无符号整型unsignedint 初始化一个字符串str:num用于存放当前转换的整型数,初始化为0.对字符串str中的每个字符进行判断,一旦扫描到当前字符在数字字符的范围之 ...
- mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑
以下试以整型(int)抛砖引玉: 一:MySQL5 以MySQL5版本为例,大多数管理员可能把自增数字.或者其它应用数字字段的列属性设置为int类型,int占用4个字节,而int又分为无符号型和有符号 ...
- signed int 数据范围_整型数据
1.整型数据的分类 (1)基本整型(int型) 编译系统分配给int型数据2个字节或4个字节(由具体的C编译系统自行决定).如Turbo C 2.0为每一个整型数据分配2个字节(16个二进制位),而V ...
- java int转无符号_Java中int或long等整型数值如何转换为无符号整数
Java8 为 Integer.Long包装类增加了如下方法: static String toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对 ...
- python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)
numpy中的数据类型转换,不能直接改原数据的dtype! 只能用函数astype().否则你的元素个数可能会倍增或倍减,数值也会对应不上! 第一种情况: import numpy as npa = ...
- 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. ...
最新文章
- 搭建本地YUM源服务器
- 如何使用Worktile进行敏捷项目开发管理
- 地铁进出站是一站怎么办_高铁坐过站?别担心,这样能免费送回
- C++程序员学Python:C与Python进行交互
- vue.js 三(数据交互)isomorphic-fetch
- java 微信支付实现
- 选购安防交换机时需要注意哪些误区?
- 在Windows 下如何使用 AspNetCore Api 和 consul
- 《solidity学习笔记》chapter 2-solidity基础知识
- python连接access2007_使用Python / pyodbc插入Access DB
- PDF417数据容量
- 基于Profinet网络的风力发电机组齿轮箱温度采集系统
- python线性链表
- window VNC Viewer设置屏幕分配率
- Oracle数据库练习题及答案大全(包含数据库脚本)
- pdfmake支持html,pdfMake前端导出pdf
- 微信小程序之小程序审核
- 应该怎样学习Unity3D
- 优秀网页设计:25个精美的旅游网站设计示例
- GAMES101 作业0 环境配置 PC下简单配置i
热门文章
- 北京理工大学计算机学院研究生宿舍几号楼,2021北京理工大学宿舍条件和新生宿舍图片及分配规则分享...
- 冰冰学习笔记:二叉树的进阶OJ题与非递归遍历
- ET学习笔记之五星麻将0
- 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 概述
- 手写 RPC(一)基于 BIO,深入理解远程调用原理
- 大专计算机基础应用毕业设计,大专计算机毕业论文
- Javaweb框架 思维导图
- 数值分析——求方程解的不动点迭代法和斯特芬森法(Python实现)
- 《现代机器人学:机械,规划与控制》第十一章——机器人控制 11.1控制系统概述
- JAVA学习生涯开始