《斯坦福大学:编程范式》第二节:基本数据类型在内存中的二进制表达

我们以C/C++为例。

基本数据类型有:

bool        1 byte

char  1 byte       256个字符,其中75个字符是常用的    

short  2bytes

int   4bytes

long  4bytes

float  4 bytes

double 8 bytes

---------------------------bytes-------------------------------------

1 bytes(字节) = 8 bit(位 binary digit)

1 bit 只能表示两个数字 0和1 ,代表高电压 低电压。

1 byte  可以表示2的8次方 =256个字符。

----------------------------------char------------------------------------------------

‘A‘ = 65 = 2的6次方+ 2的0次方。  内存中 表示为  0100,0001

--------------------------------------short--------------------------------------------

2的16次方数量的数字 :0 到 (2的16次方-1)

比如 1000,0000,0000,0001  =  2的15次方+2的0次方

-------------------------------------内存中二进制的加----------------------------------------------------

     1001 1001

  + 0101 0001

 =  1110 1010

从低位往高位加即可。

 -------------------------------------内存中二进制的减----------------------------------------------------   

     1001 1001

  -  0101 0001

 =  0100 1000

从低位往高位减即可。

 -------------------------------------如何表达负数---------------------------------------------------- 

原文地址:https://www.cnblogs.com/sundayofit/p/9181086.html

时间: 2024-10-05 21:09:29

《斯坦福大学:编程范式》第二节:基本数据类型在内存中的二进制表达的相关文章

第二十三节,不同数据类型在内存中的存址方式

不同数据类型在内存中的存址方式 字符串str,一次性创建,不能被修改,只要有修改字符串,就是在重新创建新的字符串Python底层是c语言写的,c语言没有字符串的说法,字符串是字符数组,所以在内存址是字符数组的方式

编程题:展示自动变量在内存中的生存期。

#include<stdio.h> void f(int n) { auto int s=0;  /*auto可以省略*/ s=s+1; printf("No.%d:s=%d\n",n,s); } void main() { int num; for(num=1;num<4;num++) f(num); } 编程题:展示自动变量在内存中的生存期.,布布扣,bubuko.com

sizeof运算符来获取各种数据类型在内存中所占字节数--gyy整理

C++并没有规定各种数据类型在内存中的存储大小,依赖于不同的编译器的不同而不同,要想获知当前编译器对各种数据类型分配的大小,可以通过sizeof运算符来获取. 使用方法1: sizeof(数据类型)   使用方法2: sizeof(变量名   或 常量名 或 表达式  ) sizeof(int)      或 int  a: sizeof(a) [cpp] view plain copy //数据类型空间分配情况 #include <iostream> using namespace std;

Java千百问_06数据结构(023)_基本数据类型在内存中如何存放

点击进入_更多_Java千百问 1.基本数据类型在内存中如何存放 了解基本数据类型看这里:java有哪8种基本数据类型 对于java中的8种基本数据类型,可以通过如下方式赋值给变量赋值. int a = 3; float b = 4.0f; a = a + 2; 8中基本数据是将具体值直接存放在栈中,在发生变更时,将具体值替换为新的值.具体如下: 了解java如何管理内存看这里:jvm是如何管理内存的 了解java堆和栈的区别看这里:java堆和栈有什么区别 对于基本数据类型,并没有基本数据池的

java中的各种数据类型在内存中存储的方式

1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间.释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作.但同时,它也加重了JVM的工作.因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请.引用.被引用.赋值等,GC都需要进行监控. 2.什么叫java的内存泄露 在j

JavaScript设计模式:一、面向对象编程(第二节)

一.封装 面向对象编程思想其中的一个特点就是封装,通俗的讲法就是把需要的功能方向在一个对象里.遗憾的是,对于JS这种解释性的弱类型语言没有经典强类型语言中那样通过class等关键字实现类的封装方法,js中都是通过一些特性模仿实现的,虽然这是个弊端,但也带来了极高的灵活性. 我们看一个Book类是如何通过JS实现的: 1 // 写法1 2 var Book = function (id, name, pirce) { 3 this.id = id 4 this.name = name 5 this

斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”

文本处理基础 1.正则表达式(Regular Expressions) 正则表达式是重要的文本预处理工具. 以下截取了部分正则写法: 2.分词(Word tokenization) 我们在进行每一次文本处理时都要对文本进行统一标准化(text normalization)处理. 文本规模 How many words? 我们引入变量Type和Token 分别代表词典中的元素(an element of the vocabulary)和这个元素在文中的出现(an instance of that

Java语言中:float、double数据类型在内存中是如何存储的

引用参考 https://www.cnblogs.com/chenmingjun/p/8415464.html#4291528 https://blog.csdn.net/yansmile1/article/details/70145416 java语言中,float类型数字在计算机中用4个字节(32位)来存储.double类型占用8个字节(64位). 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储

编程范式:响应式编程

响应式编程是一种面向数据流和变化传播的编程范式.这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播. 例如,在命令式编程环境中,a:=b+c表示将表达式的结果赋给a,而之后改变b或c的值不会影响a.但在响应式编程中,a的值会随着b或c的更新而更新. Event buses或者Click events本质上就是异步事件流(Asynchronous event stream),你可以监听并处理这些事件:任何一个东西我们都可以把他们当成一个str