请教C语言程序里如何给地位赋值?

比如: int a=8947848; 即:0x888888,这个是四字节,我如何为其高位或者低位赋值而别的任然不变?如将其低两字节赋值为0,就成了8912896,即0x880000。
对于int64 呢,如何处理?
除了采用内存拷贝的方式

第1个回答  2010-08-19
用位运算,先与后或
例如 a=a&0xffffff00 这样其低两字节会清零
然后 a=a|0x000000ef 这样其低两字节会置ef,要赋其他值相应改动即可
甚至 不一定是整字节的改变,可以改变任意的若干位,只要设计好与,或得值即可
第2个回答  2010-08-19
这个吗,很简单的:
int a = 0x1234ABCD;
unsigned char * b = (unsigned char *)a;
然后你修改任何一个字节都可以:
b[0] = 0;
b[1] = 0x67;
b[2] = 0xEF;
b[3] = 0x89;
然后a的值就变成了0x89EF6700本回答被提问者采纳
第3个回答  2010-08-19
0x888888是3个字节。每个16进制数表示4个位。
一般都是用位操作符来实现0和1的切换。
分2步
1.,生成需要的mask,也就是掩码。
如 int b = 0xff0000;
2用掩码与目标操作得到结果
如 a = a | b;
第4个回答  2010-08-19
可以用位运算快速改变变量某几位的值:
要将指定位置1可以将初值和X进行 或 操作(其中X指:指定位为1其他位均为0)
要将指定位置0可以将初值和X进行 与 操作(其中X指:指定位为0其他位均为1)

请教C语言程序里如何给地位赋值?
用位运算,先与后或 例如 a=a&0xffffff00 这样其低两字节会清零 然后 a=a|0x000000ef 这样其低两字节会置ef,要赋其他值相应改动即可 甚至 不一定是整字节的改变,可以改变任意的若干位,只要设计好与,或得值即可

在单片机C语言中如何对变量的某一位进行操作或赋值。
在C语言中,一般有两种方法来操作位,一种是使用C语言提供的位运算操作符,一种是使用位域。1、使用位域 在C语言中定义位域的一般格式如下:struct 位域结构名 { 位域列表 };struct:在C语言中定义位域所使用的关键字是struct。位域结构名:是一个C语言中的标识符,有字母、数字、下划线组成,而...

怎么用C语言给一个字节的低四位赋值,而不影响高四位
把那个数和 0xf0相与 那个数高四位不变 底四位被清零 然后和你想要的底四位的数相或 比如 0x05 那个数高四位不变 底四位变成了 5

c语言中赋值语句的格式是什么?
按索引进行赋值时使用的方法有:scatter_(dim,index,src)、index_fill_(dim,index,val)、index_put_(indices,value)。1、scatter_(dim,index,src)按照index,将src的数据散放到self的dim维度中。例如,对于三维Tensor,dim(int)—要散布拷贝的维度;index(LongTensor)—散布拷贝的索引;...

关于C语言中给绝对地址的赋值问题
1. 从变量的定义出发,变量是地址空间的别名,也即例如unsigned int *a表示给一个存储空间命名为a同时这个空间是一个地址指针,假设这个存储空间的地址为0x100000,那么此时a即是地址0x100000单元的别名,对a赋值即是对0x100000所标识的空间赋值。因此(unsigned int *)0x100000 = 0x3322赋值的空间是0x...

c语言 指针如何赋值
1、变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。2、为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。3、定义指针变量.对...

C语言中字符串是怎么赋值的?
在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。1、指针式赋值。通过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了...

C语言中怎么给数组某个元素赋值
没有赋值的元素的值都是初始值,写一个循环判断没有赋值的下标,再赋值就可以了!include <stdio.h void main(){int b,c[5]={0,1,2};if(c[b]==0){c[b]=1;break;}}printf("%d",c[b]);}而且,数组是不能先定义再给它赋值的!

请问:单片机c语言中如何实现将变量A中某1位赋值给B中某1位的操作?
假如将A第三位赋给B第二位 对于C51架构单片机,可使用位寻址:bdata A, B;sbit a3 = A^3; \/\/位变量指向A第三位 sbit b2 = B^2;b2 = a3;对于其他任何类型单片机,可使用位操作宏(同样适用于C51):define get_bit(var, n) (var & (1<<n))define set_bit(var, n) (var |= (1...

C语言中,如果把一个字节赋值给一个位会程序会怎样执行?
C语言内存存储跟操作系统关系非常大,因此对于一个变量(int,double等等)的内存存储都有大小端的问题,但是对于一个字节的来说,不存在大小端问题。因此对于一个字节赋值给一个位,其实就是一个内存截取的过程,例如:include<stdio.h> typedef struct { char a;int b:1;}TEST;int main(){ TEST ...

相似回答