精华内容
下载资源
问答
  • 读取个整数的每bit位的值

    千次阅读 2018-09-15 11:33:30
    //判断个int变量的每个bit位的值(1或者0) // num =4 --转成2进制-- 100 // 1 << pos, //将1左移0位 1 100 & 1 结果得到是000 --> 说明该变量的右起第10 //将1左移1 10 100 ...
    //判断一个int变量的每个bit位的值(1或者0)
    // num =4  --转成2进制--  100
    // 1 << pos,
    //将1左移0位   1     100 & 1     结果得到是000  --> 说明该变量的右起第1位是0
    //将1左移1位   10    100 & 10    结果得到是000  --> 说明该变量的右起第2位是0
    //将1左移2位   100   100 & 100   结果得到是100  --> 说明该变量的右起第3位是1
    int GetBitStatu(int num, int pos)
    {
        if(num & (1 << pos)) //按位与之后的结果非0
        {
            printf("该位上的值为1");
            return 1;
        }
        else
        {
            printf("该位上的值为0");
            return 0;
        }
    }

     

    展开全文
  • 个字节 (byte) 是8bit)的由来

    千次阅读 2018-09-29 23:29:50
    bit存储内容是0和1;bit是计算机中最小的储存单位 首先个byte是由8个bit组成,它是最小的可寻址单元 ,存储了ASCII所有字符,(这是8字符大小的来源) 八个bit可以存储基本的元素 2^8个数 例如:abcd1234和各种...

     

    bit存储内容是0和1;bit是计算机中最小的储存单位

    首先一个byte是由8个bit组成,它是最小的可寻址单元 ,存储了ASCII所有字符,(这是8字符大小的来源)

    八个bit可以存储基本的元素 2^8个数  例如:abcd1234和各种符号

    数据:每一个符号(英文、数字或符号等)都会占用1Bytes的记录,每一个中文占2Byte

    1B(Byte)=8b(bit)
    1KB=1024B
    1MB=1024KB
    1GB=1024MB

    展开全文
  • #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt;...unsigned char byteReverse... for (i = 0; i &lt; 4; i++) { if (((val &amp;(1 &lt;&lt; i)) &gt;&gt; i) ^ (...
    #include<stdio.h>
    #include<stdlib.h>
    //异或法
    unsigned char byteReverse(unsigned char val) {
    
    	int i;
    
    	for (i = 0; i < 4; i++) {
    		if (((val &(1 << i)) >> i) ^ ((val & (1 << (7 - i))) >> (7 - i)))
    			val ^= (1 << i) | (1 << (7 - i));
    	}
    	return val;
    }
    
    //移位法:
    unsigned char byteReverse1(unsigned char value) {
    	unsigned char a = 0, b = 0, c = 0;
    	for (int i=0;i<4;i++)
    	{
    		a = value&(0x80>>i);
    		b = value&(0x01 << i);
    		c = c + (b << (7 - 2 * i)) + (a >> (7 - 2 * i));
    	}
    	return c;
    }
    
    
    //如用C语言,“蝶形交换”最好
    unsigned char byteReverse2(unsigned char a) {
    	a = (a << 4) | (a >> 4);
    	a = ((a << 2) & 0xcc) | ((a >> 2) & 0x33);
    	a = ((a << 1) & 0xaa) | ((a >> 1) & 0x55);
    	return a;
    }
    
    //蝶形交换,下面三句顺序随意
    unsigned char byteReverse3(unsigned char a) {
    	a = ((a << 4) & 0xf0) | ((a >> 4) & 0x0f);
    	a = ((a << 2) & 0xcc) | ((a >> 2) & 0x33);
    	a = ((a << 1) & 0xaa) | ((a >> 1) & 0x55);
    	return a;
    }
    
    
    //还是觉得查表简单点:
    unsigned char byteReverse4(unsigned char dat) {
    	const unsigned char table[16] = { 0, 0x08, 0x04, 0x0c, 0x02, 0x0a, 0x06, 0x0e, 0x01, 0x09, 0x05, 0x0d, 0x03, 0x0b, 0x07, 0x0f };
    	dat = table[(dat & 0xf0) >> 4] | (table[dat & 0x0f] << 4);
    	return dat;
    }
    
    unsigned char byteReverse5(unsigned char data)
    {
    	unsigned char ret = 0;
    	for (unsigned char i = 0; i< 8; i++)
    	{
    		ret <<= 1;
    		if (data & 0x01)
    
    		{
    			++ret;
    		}
    		data >>= 1;
    	}
    	return ret;
    }
    
    unsigned char byteReverse6(unsigned char val)
    {
    	unsigned char  dat_b, i;
    	dat_b = 0x00;
    	for (i = 0; i <= 7; i++)
    	{
    		dat_b = dat_b | ((val >> i) & 0x01);
    		if (i == 7)break;
    		dat_b = dat_b << 1;
    	}
    	val = dat_b;
    	return val;
    }
    
    void byteReverse7(unsigned char tar, unsigned char *pdata)
    {
    	unsigned char temp1 = (tar & 0x80) >> 7;
    	unsigned char temp2 = (tar & 0x40) >> 5;
    	unsigned char temp3 = (tar & 0x20) >> 3;
    	unsigned char temp4 = (tar & 0x10) >> 1;
    	unsigned char temp5 = (tar & 0x08) << 1;
    	unsigned char temp6 = (tar & 0x04) << 3;
    	unsigned char temp7 = (tar & 0x02) << 5;
    	unsigned char temp8 = (tar & 0x01) << 7;
    	*pdata = (temp1) | (temp2) | (temp3) | (temp4) | (temp5) | (temp6) | (temp7) | (temp8);
    }
    
    //有问题
    const unsigned char jh_tab[8] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
    unsigned char byteReverse8(unsigned char in_data)
    {
    	unsigned char i;
    	unsigned char aa[8];
    	unsigned char back_data = 0;
    	for (i = 0; i< 8; i++)
    	{
    		aa[i] = in_data & jh_tab[i];
    	}
    	aa[0] = aa[0] << 7;
    	aa[1] = aa[1] << 5;
    	aa[2] = aa[2] << 3;
    	aa[3] = aa[3] << 1;
    	aa[7] = aa[7] >> 7;
    	aa[6] = aa[6] >> 5;
    	aa[5] = aa[5] >> 3;
    	aa[4] = aa[4] >> 1;
    	for (i = 0; i< 8; i++)
    	{
    		back_data = back_data + aa;
    	}
    	back_data = back_data;
    	return back_data;
    }
    
    
    void byteReverse9()
    {
    	unsigned char  c = 0x20;
    	unsigned char b = 0;
    	char i;
    	unsigned char P1 = c;
    	unsigned char P2 = b;
    	for (i = 0; i< 8; i++)
    	{
    		b <<= 1;
    		b += c & 0x01;
    		c >>= 1;
    		P1 = c;
    		P2 = b;
    	}
    	while (1);
    }
    
    
    void main()
    {
    	char data = 0x96;
    	printf("@@@@@%x\n", byteReverse1(data));
    }
    
    
    
    
    
    
     /*
     //汇编法
    #ifndef_COMMON_H_
    #define_COMMON_H_
    
    #define__SWAP7_0(_short)\
    (__extension__({                             \
        uint8_t __result =  (uint8_t)(_short);    \
        __asm__ __volatile__                    \
        (                                       \
            "mov__tmp_reg__,%0" "\n\t"       \
            "ldir25,8"          "\n\t"       \
            "L_%=:" "lsr__tmp_reg__"    "\n\t"       \
            "rol%0"             "\n\t"       \
            "decr25"            "\n\t"       \
            "brneL_%="           "\n\t"       \
            : "=r" (__result)                   \
            : "0"  (__result)                   \
                    : "memory"                \
       );                                       \
        __result;                                \
    }))
    
    #defineSWAP7_0(_short)__SWAP7_0((uint8_t)(_short))
    #endif
    
    int main(void)
    {
    	  char i;
    	  i =  0b01100111;
    	  i =  SWAP7_0(i); 
    	  PORTB = i;
    }
    */
    

      

    展开全文
  • 获取32位整型变量中某一位bit

    千次阅读 2013-12-13 10:03:26
    #include typedef unsigned int UINT_32; typedef unsigned char UINT_8; ...UINT_8 GetBit(UINT_32 number,UINT_32 index) ... //如果传入参数有问题,则返回0xff,表示异常 return (number>>i
    #include <stdio.h>
    
    typedef unsigned int UINT_32;
    typedef unsigned char UINT_8;
    
    UINT_8 GetBit(UINT_32 number,UINT_32 index)
    {
    	if(index < 0 || index > 31)
    		return 0xff; //如果传入参数有问题,则返回0xff,表示异常
    	return (number>>index)&1UL;
    }
    
    int main(void)
    {
    	int n = 0x9521;
    	int i = 0;
    	for(i = 31; i >= 0; i--)
    	{
    		printf("%d",GetBit(n,i));
    		if(i%4 == 0)
    		putchar(' ');
    	}
    	putchar('\n');
    	return 0;
    }

     

    个人代码,仅供参考!

    展开全文
  • C语言Bit位定义

    万次阅读 2016-11-02 22:50:50
    C语言Bit定义注意点: 首先看个C位域使用的官方例子(摘自MC9S12XS128.h): /*** ATD0CTL45 - ATD 0 Control Register 45; 0x000002C4 ***/ typedef union {  word Word;  /* Overlapped registers: */  ...
  • 个正整数int有多少bit位

    千次阅读 2015-01-02 08:03:56
    个正整数int,输出bit位为1的个数。 解法1 public static int bitCount(int x) { int count = 0; while(x > 0) { count += (x % 2); x = x / 2; } return count; }如果是9 计算4次 解法2 ...
  • 转载连接: https://blog.csdn.net/qq_21794823/article/details/53517628例:... int n0, n1, n2, n3, n4, n5, n6, n7;n0 = (byData &amp; 0x01) == 0x01 ? 1 : 0;n1 = (byData &amp; 0x02) == 0x02 ? ...
  • 为什么个字节是八个bit

    万次阅读 多人点赞 2019-06-10 19:10:29
    字节是是计算机信息计量单位,个字节包含八个bit。 但是为什么个字节是八个bitbit bit是计算机存储数据的最小单位,只有0和1两种值。对于计算机来说,数据只有0和1两种值。 ascii码 ascii码是计算机开始...
  • c语言操作bit位置0置1

    万次阅读 2018-08-04 15:40:23
     构造个特定位为0,其他为1的数,再与被操作数进行&amp;操作  2、特定位置1用或|  构造个特定位为1,其他0的数,再与被操作数进行|操作  3、特定位取反用异或^  构造个特定位为1,其他...
  • sql server的个有趣的bit位运算

    千次阅读 2012-12-17 21:07:40
    sql server中没有bool类型,而是用bit类型来表示bool值,估计是为了节省存储空间。 可是要想实现取反操作似乎就麻烦写了,比如类似下面这样的语句是...个很有趣的问题发生了,我们发现在Sql Server中的bit类型的数
  • 今天有朋友遇到一个笔试题:一个 4096位的bit数组,要找出前10个二进制的1 所在的位置,麻烦写一个函数来实现 bit数组对我来说是一个新的概念,...在这种结构中一个整数在内存中用一位(1 bit)表示。这里所谓的表...
  • Luabit运作简介

    千次阅读 2017-01-02 13:41:22
    Luabit运算 ...例如有这么种较典型的情况,我们用个32的整数表示RGB颜色,32整数,被分为4个部分,每个部分8bit, 8bit可表示的10进制数的范围是0~255。 我们现在有组RGB的颜色值: Alpha通道=8,
  • 运算(Bit Manipulation)一直是程序员面试中的个必须准备的主题, 不过现在面试中运算出现的次数并不多,主要原因还是运算太考察技巧了,很多时候很难在短时间内想出来,所以作为面试的题目显得有点太花时间...
  • Java bit位提取

    千次阅读 2015-10-10 11:41:00
    在和硬件通信中,带宽显得很重要,因此数据传输会制定非常严格的通信协议,为了节省...提取出的bit位放入byte数据类型中,如果超出8,则存放到byte数组中,不够8bit,高位补0即可。 代码大致如下 public byte
  •  功能: 实现对个8bit数据(unsigned char类型)的指定位(例如第n)的置0或者置1操作,并保持其他不变。  函数原型:void RightLoopMove(unsigned char *p_data, unsigned char position, int flag)  函数...
  • 其实现思路如下: 将目标数值进行末尾比特摘取,将所摘取的bit位放到个相同类型的末尾,目标数值bit位右移,相同类型bit位左移。 C语言的运算符:650) this.width=650;" src=...
  • python bit 操作

    千次阅读 2018-07-01 19:32:13
  • 几天前个兄弟在群里问了这样个问题:怎么快速的判断个正整数中只有BIT位为1?   大家讨论了很久没得出能够“快速判断”答案,某君说:“我们公司搞算法的博士不在,不能帮你解决。” 汗,,, 下面这行...
  • ///////////////////////////////////////////////////////////...// Bit.cpp : bitset用法 —— 修改个字节的任意bit位 // 2010-09-05 by Koma #include "stdafx.h" #include #include #include using namespac
  • 、由异或门和与门所构成的半加器: 二、由两个半加器构成的1-bit全加器: ..
  • 判断Ubuntu是32bit还是64bit

    千次阅读 2013-01-22 21:40:08
    前言 今天在运维工作时候,突然忘记查看ubuntu系统...在32bit的机器里,内存地址用32bit标识在64bit的机器里,内存地址用64bit标识因此,我们可以打印指针的字节数*8不就是cpu的位数了 代码 #include #include
  • 最近开发需要将个数据做奇偶校验,首先就是要计算出这个数据中bit位为1的个数,有以下几种算法可以达到要求: 1 方法1 我直接上代码,然后分析。 uint16_t get_one_in_data_1(uint16_t data) { uint16_t n =...
  • 对接中我遇到的第个问题就是数据封装和解析都是按bit位算的,个数据占多少个bit这样的。现在遇到的问题就比如说,现在用两个byte来存CTRL,三个bit用来存版本号,bit用来做判断是否需要ACK,三个bit用来存...
  • 如何取出个字节中的任意(bit)

    千次阅读 2018-11-20 23:05:04
    方法: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { unsigned char c = 0x33; int b[8]; for(int i =0; i&lt;8; i++) { b[i] = ((c &...
  • 64bit的python训练出的机器学习模型在Chaquopy中解析失败,其原因是Chaquopy中python为32bit,所以需要在pycharm中安装32python再生成模型。
  • typedef struct bit0 : 1

    千次阅读 2012-10-09 17:41:44
    #define Uint unsigned int typedef struct ...Uint bit0 : 1; Uint bit1 : 1; Uint bit2 : 1; Uint bit3 : 1; Uint bit4 : 1; Uint bit5 : 1; Uint bit6 : 1; Uint bit7 : 1; Uint bit8 : 1; U
  • 在java里,个byte占8 ( bit0-bti7 ),那我们怎么去获取其中的某个bit值或连续的几个bit值呢? 获取单个bit值: //b为传入的字节,i为第几(范围0-7),如要获取bit0,则i=0 public int getBit(byte b,int i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 440,220
精华内容 176,088
关键字:

bit0是哪一位