c语言方向变量,C语言,变量与内存

一、数在计算机中的二进制表示

符号位:最高位为符号位,正数该位为0,负数该位为1;

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值

反码:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

补码: 正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。

正数的原码、补码、反码表示方法均相同,不需转换。

任何数值在内存中都是以补码的形式存储的。

正数的补码与原码相同。比如9的原码和补码都是1001。

负数的补码等于它正数的原码按位取反后再+1。

负数补码计算:

1> -10的二进制形式        :1000 0000 0000 0000 0000 0000 0000 1010 //原

2> 除符号位取反             :1111 1111 1111 1111 1111 1111 1111 0101 //反

3> 对取反后的结果+1      :1111 1111 1111 1111 1111 1111 1111 0110 //补

二、基本数据类型

in linux-32:

#include "stdafx.h"

#include

#include

#include

#include "t.h"

void f0(void);

typedef struct ds{

unsigned int ui;

int i;

int j;

long int li;

char c;

unsigned char uc;

short int si;

unsigned short int usi;

float f;

double d;

long double ld;

char data[];

}DST;

int t1(void)

{

f0();

DST* pdst = (DST*)malloc(sizeof(DST)+1000);

if(pdst == 0){

return -1;

}

memset(pdst, 0, sizeof(DST)+1000);

pdst->ui = 0xffffffff;

pdst->i = pdst->ui;

pdst->j = -2147483648;

pdst->li = -2147483648;

pdst->c = -1;

pdst->uc = -1;

pdst->si = -1;

pdst->usi = -1;

pdst->f = -1;

pdst->d = -1;

pdst->ld = -1;

printf("pdst->c addr = %08x

", &(pdst->c) );

printf("pdst->uc addr = %08x

", &(pdst->uc) );

printf("pdst->si addr = %08x

", &(pdst->si) );

printf("pdst->usi addr = %08x

", &(pdst->usi) );

printf("pdst->f addr = %08x

", &(pdst->f) );

printf("pdst->d addr = %08x

", &(pdst->d) );

printf("pdst->ld addr = %08x

", &(pdst->ld) );

free(pdst);

pdst = 0;

return 0;

}

void f0(void)

{

printf("in vs2010:

");

printf("sizeof(char) = %d

", sizeof(char));

printf("sizeof(int) = %d

", sizeof(int));

printf("sizeof(short int) = %d

", sizeof(short int));

printf("sizeof(long int) = %d

", sizeof(long int));

printf("sizeof(float) = %d

", sizeof(float));

printf("sizeof(double) = %d

", sizeof(double));

printf("sizeof(long double) = %d

", sizeof(long double));

}

85cf0f55919e119fa211d3b038b7297f.png

内存中的i是0xffffffff,

(1)转化为二进制   1111 1111 1111 1111 1111 1111 1111 1111

(2)发现是负数

(3)减一               1111 1111 1111 1111 1111 1111 1111 1110

(4)除符号位取反   1000 0000 0000 0000 0000 0000 0000 0001 ; 真值为-1

内存中的j是0x80000000,(最小的一个负值,暂时还不能理解,因为借了一位才能完成这换算,需33位,不知是不是因为cpu中的计算单元有33位以上寄存器。)

(1)转化为2进制, 1000 0000 0000 0000 0000 0000 0000 0000

(2)发现是负数

(3)减一            1 0111 1111 1111 1111 1111 1111 1111 1111

(4)除符号位取反1 1000 0000 0000 0000 0000 0000 0000 0000 ;真值为-231= -2147483648

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新距离

1、这是个现实的社会,感情不能当饭吃,贫穷夫妻百事哀。不要相信电影里的故事情节,那只是个供许多陌生人喧嚣情感的场所。只有不理智和不现实的人才相信。  2、给自己定目标,一年,两年,五年,也…

android开发 文件分享到应用,Android开发之——7.0适配之应用之间共享文件(FileProvider)...

前言Android 7.0强制启用了被称作StrictMode的策略,带来的影响就是你的App对外无法暴露file://类型的URI了。如果你使用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),那么会抛出FileUriException异常。官方给出解决这个问题的方…

android涂鸦板保存功能,android实现涂鸦,保存涂鸦后的图片,清屏

自定义view的类,代码如下:[html]package com.xy.tuya;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android…

浏览器与服务器响应流程-----(转)

一. 解析域名地址为IP地址 浏览器DNS缓存:以Chrome为例,在浏览器窗口中输入chrome://net-internals/#dns,就可以查看当前浏览器DNS缓存记录,chrome的DNS缓存过期时间还是比较短的,大约为1分钟。 本机DNS缓存&#xff1…

Pc-98 android,PC安卓多功能搞机助手3.98

V3.98版本更新日志:1.全新多设备检测机制,底层代码重写;2.新增支持检测安卓用户是否允许当前电脑调试设备;3.软件冻结#卸载中新增清除指定应用数据;4.小米线刷检测功能优化,修复之前版本不能正确识别设备是…

拼接路径的两种方式

//本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490669.html https://www.evernote.com/shard/s227/sh/1401e497-899e-4b04-9ff6-e1d9638e9f25/f6b722ed5cb2c5f603a9b242ee7fe230转载于:https://www.cnblogs.com/ChenYilong/p/3490669.html

android像素鸟,像素鸟Flappy Bird

Flappy Bird是最近非常热门的一款像素游戏,Flappy Bird 的游戏规则异常简单:和Frogmind Games的成名作品BADLAND类似,玩家只需要点击屏幕就可以操作游戏,控制角色通过各种障碍。看似简单的规则下是让人抓狂的游戏难度。首先&#…

Android是什么 之三手机之硬件形态

手机硬件形态  本节可能与Android无关,但是Android系统现在这个阶段更多的是移动终端形态的开发平台,本节给出了Android背后的工作-Android管理的硬件是什么,Android的本质就是要管理好这些硬件部分,为用户提供一个体验更好&…

品味性能之道十一:JAVA中switch和if性能比较

通常而言大家普遍的认知里switch case的效率高于if else。根据我的理解而言switch的查找类似于二叉树,if则是线性查找。按照此逻辑推理对于对比条件数目大于3时switch更优,并且对比条件数目越多时switch的优势越为明显。一、测试目的最近与开发同学对于前…

miniblink载入html,winform使用miniblink展示html(全屏)

【实例简介】使用miniblink 展示html的例子,miniblink基于chromium的浏览器控件【实例截图】点击下图中的百度,即可 实现全屏访问 百度网页 ,如下图:其实是winform嵌入的这个网页,打开即是 全屏效果【核心代码】using …

html设置照片模糊效果,CSS如何实现照片模糊?

在开发网页时,照片模糊处理会经常被使用,比如当我们背景图的模糊,当我们不想背景图片过于突出影响美观时,就可以设置将照片模糊处理,突出文字部分。那么 CSS 如何实现照片模糊呢?这篇文章 w3cschool 小编告…

女生学计算机未来出路,计算机真的已经烂大街了吗,女生学计算机没出路吗?...

假的。先说第一个问题:情况是,现在程序员是很多,但多半是中低端程序员,高端程序员供不应求,薪资一涨再涨。现在的程序员门槛一高再高,就是为了淘汰掉那些半吊子的程序员。如果你是靠从网上复制粘贴代码的“…

这些快捷键要学会使用啊

史上最全苹果键盘及Xcode快捷键整理 它们分别是command、option、control、shift以及esc除了command键上有标志之外其余四个可以通过这四个键对比比较出来。 谢谢原文作者提供较详细的快捷键说明。 常用的Xcode快捷键,工欲善其事,必先利其器。mac的键盘和…

关机计算机专业,电脑关机后自动重启怎么回事

日常生活中,大部分的网友朋友们都碰到过电脑在正常使用时,突然电脑自动重启了,并且多次尝试强制关机都无效,令人费神。下面小编针对此问题的原因给出了几种方法,希望对大家有所帮助,快来看看吧!…

计算机无法打开打印机ip端口,讲述Win10电脑上无法选择打印机端口的解决方法...

我们在Win10电脑上使用打印机,进行打印材料是很平常的一件事,但是有用户在Win10电脑上,操作打印机时,出现了打印机端口无法选择的问题,不知道该怎么办?如果打印机端口无法正常选择的话,就代表我…

计算机WIN7动态硬盘分区,win7硬盘分区教程

win7硬盘分区教程硬盘分区其实是对硬盘的一种格式化,进行了此步骤后才可以使用硬盘保存各种数据,下面是小编为大家详细介绍win7硬盘分区教程,欢迎大家阅读!一、进入磁盘管理工具我们点击要对硬盘进行分区,我们首先得知…

计算机的alu的作用,算术逻辑运算单元(ALU)的基本功能是什么 – 手机爱问

2004-12-28解释定点运算器的功能和组成部件解释定点算器包括ALU\阵列乘除器\寄存器\多路开关\三态缓冲器\数据总线等逻辑部件。运算器的设计,主要是围绕ALU和寄存器同数据总线之间如何传送操作数和运算结果进行的。在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和…

笔记本上的小键盘计算机怎样用,笔记本数字小键盘不能用怎么办【解决方法】...

许多笔记本键盘中都会携带一个小键盘,与台式电脑的键盘大小差不多,小键盘上面标注着阿拉伯数字0到9,非常适合会计行业的人们使用。小键盘可以帮助人们快速地将数字敲打出来,使用起来极为方便。要知道,大键盘属于输入设…

批量Append

GIS数据是按照图幅号组织的,现需要每个单独的系统数据进行拼接。 以下是批量追加代码: # --------------------------------------------------------------------------- # Append.py # Created on: 2013-01-21 10:25:22.00000 # (generated by ArcGI…

jquery ajax php中 css样式不显示,Chrome浏览器在Ajax同步调用之前不会显示Jquery的动态css Propery更改...

我有如下因素HTML节点:上的click事件会触发聊天对象的方法this.addUser function(trigger_node, id, is_silent, session, show_block_message){if(trigger_node){this.bk_trigger_node.html trigger_node.innerHTML;this.bk_trigger_node.cn trigger_node.class…