一、基本知识
1、1个字节8位
2、原码:一个正常的n位字符集
3、补码:在反码的基础上按照正常的加法运算加1
例如
类型 | 4113 |
---|---|
原码 | 10101011 |
反码 | 11010100 |
补码 | 11010101 |
4、反码:在原码的基础上,符号位不变(最高位)其他位按位取反(就是0变1,1变0)
二、Java
1)整数值四种表达方式
进制数 | 表达前缀 |
---|---|
二进制 | 0b/0B |
八进制 | 0 |
十六进制 | 0x/0X |
十进制 | 不需要(默认) |
2)整型
整型 | 字节 | 表数范围 |
---|---|---|
byte | 1 | -2e7~2e7-1 |
short | 2 | -2e15~2e15-1 |
int | 4 | -2e31~2e31-1 |
long | 8 | -2e63~2e63-1 |
3)浮点型
浮点型 | 字节大小 |
---|---|
float | 四个字节 |
double | 8个字节 |
4)字符型
字符型 | 字节大小 |
---|---|
char | 2 |
5)布尔类型
表示逻辑上的真或者假
boolean 只有true/false两个变量
三、C
整数型
字符类型 | 字节大小 | 取值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
浮点型
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位小数 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位小数 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
注:int 类型的数值和机器的位数有关
四、C++
类型 | 位 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 to 18,446,744,073,709,551,615 |
float | 4 个字节 | +/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | +/- 1.7e +/- 308 (~15 个数字) |
long double | 8 个字节 | +/- 1.7e +/- 308 (~15 个数字) |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
五、Python3
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。
标准数据类型有六个标准的数据类型:
Number(数字)
int、float、bool、complex(复数)。
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)
六、javaScript
JavaScript 拥有动态类型。 使用的时候,动态分配内存空间。
字符串、数字、布尔、数组、对象、Null、Undefined
Undefined
var x; // x 为 undefined
数字
var x = 2312; // x 为数字
var x = 100.01; // x 为数字
字符串
var x = "倒萨223DD"; // x 为字符串
布尔类型
var x=true;
var x=false;
变量声明
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
对象:
var person={firstname:"Bill", lastname:"Gates", id:5566};
对象属性有两种寻址方式:
name=person.lastname;
name=person["lastname"];
七、数据类型比较
1、动态语言(JS,python3)和静态语言(Java、C/C++)
动态:在运行期间检查数据的类型
静态:在运行前编译时检查类型
2、Java/ C/C++
1)
java | 健壮的大型软件 |
---|---|
C++ | 需求效率的软件 |
C | 操作系统及驱动 |
2)在变量上,C是C++的一个子集。
C/C++ 存储除char类型外,其他视系统不同略有不同,但低精度的位数不可以超过高精度的。
java 简化了C++的变量类型,且变量类型大小 不受系统平台影响。
变量类型 | C/C++中字节 | java中字节数 |
---|---|---|
int | 2 | 4 |
short | 2 | 2 |
long | 4 | 8 |
char | 1 | 2 |
float | 4 | 4 |
double | 8 | 8 |
long double | 16 | 不存在 |
3)总结
从变量类型来看,动态语言具有更灵活性,操作便捷,所以对执行效率有所影响。静态语言 缺乏灵活性,但是执行效率更高。
Java 和C的变量类型种类少于C++,Java在int和long,char类型的变量字节都是C/C++的两倍。从而可以看出 java运行的时候,对于内存消耗比较大。
Java的变量不受平台影响。而C/C++ 在设计变量类型(int 等)的时候,要考虑运行环境的影响。
参考
1)C 菜鸟教程 http://www.runoob.com/cprogramming/c-data-types.html
2)js 菜鸟教程 http://www.runoob.com/js/js-intro.html