•  中外思维的差异使得我们在学习英语词汇时容易产生错误理解,把中文背景带到英文单词中。不要紧,今天就跟着我们一起看看25大常错词,及时...你认为单词的含义是:滑稽的事。 What it really means: Contra

    1. Irony

    What you think it means: Something that is funny.

    What it really means: Contrary to what you are expecting.

    This is a famous one because so many people get this wrong so often. It’s also kind of hard to explain, so we’ll use an example. The Titanic was boasted about as being 100% unsinkable and then in 1912 it was sunk anyway. That is what is called cosmic irony. When a starving vegetarian eats a pepperoni pizza, that is what is called situational irony.

    There are other kinds too, such as dramatic irony and Socratic irony. Believe it or not, sarcasm is actually irony. When you say something sarcastically, your tone and your words mean two opposite things. That is ironic. Irony can be funny but not everything funny is irony.

    2. Travesty

    What you think it means: A tragedy or something unfortunate.

    What it really means: A mockery or parody.

    This is another one that people have wrong fairly frequently. You’ve heard people call 9/11 a travesty. Truth be told 9/11 was a tragedy. A travesty is actually a mockery or a parody. One might say that a Weird Al Yankovic album is a travesty. With how often this word is associated with tragedy, we wouldn’t be shocked if that definition were eventually added as an acceptable meaning. Until then, it doesn’t mean anything bad happened.


    3. Ultimate

    What you think it means: The one, the only. The best.

    What it really means: The last item of a list.

    Some people do actually use this one properly. You may see someone list off a bunch of things and hear them say, “Okay, at the store we need eggs, milk, juice, and ultimately, butter.” That is actually the proper use of ultimate. There is no other context or added context. It simply means the last one.

    4. Conversate

    What you think it means: To have a conversation.

    What it really means: Nothing.

    Conversate actually doesn’t exist and I’ll prove it to you. Go into a program that underlines words with red if they’re spelled wrong. Now type out conversate. Did you see the red line? Conversate was meant to be a mixture of conversation and converse and be used as a verb. However, converse is a verb and there really isn’t a need for a second verb to describe the same action.

    5. Peruse

    What you think it means: To skim or browse.

    What it really means: To observe in depth.

    When you peruse something, you are actually taking a very close look at it. When you’re at a record store and you’re just running through a stack of records, you are just browsing. If you pick up a record and look at the artist, track list, and additional information on the back, then your are perusing.

    6. Bemused

    What you think it means: Amused.

    What it really means: Confused.

    This is one of the many words on this list that will make you strongly dislike the English language. Despite looking all but identical to the word amused, bemused doesn’t even come close to meaning the same thing. If you are bemused then you are actually confused.

    7. Compelled

    What you think it means: To do something voluntarily by choice.

    What it really means: To be forced or obligated to doing something.

    This is one that people get wrong and it’s rather understandable. The real definition is very close to the definition people generally use. The difference is the motivation. When people say compelled, they think the person wants to perform the action. In fact, they are forced to do it regardless of their personal feelings. Here’s an example. When you’re in court, you are compelled to give honest testimony. You may not want to, but it doesn’t matter because you have to.

    8. Nauseous

    What you think it means: To feel ill.

    What it really means: To cause feelings of illness.

    This is another understandable mishap that a lot of people make. If you actually feel sick then you are nauseated. The object that made you feel ill is nauseous. Here’s how this works. If you’re at an amusement park and you’re sitting next to a full trash can, the fumes from the trash may make you feel ill. That means the fumes from the trash can are nauseous because they are making you feel nauseated.

    9. Redundant

    What you think it means: Repetitive.

    What it really means: Unnecessarily excessive.

    This one is tough because you can use it wrong but unintentionally use it right. When you repeat something a bunch of times, it can become redundant, but redundant expands far beyond just repeating things over and over. A popular thing companies are doing now is firing people but instead of calling it “getting fired,” they call it “eliminating redundancies.” The premise being that the employee they’re firing is unnecessary and excessive and they are thus eliminating them. In pretty much any scenario where there is simply too much of something, it is redundant.

    10. Enormity

    What you think it means: Huge, enormous.

    What it really means: Profoundly immoral or evil.

    Don’t beat yourself up over this one because no one knows this one off the top of their head. Enormity sounds like enormous and as with many of our other examples, here we expect words that sound alike to have similar meanings. Enormity simply means really evil. An example of how to use it is the following: “The enormity of the crimes committed by the Nazis in World War II.” It doesn’t mean the enormous crimes, it means the heinous crimes.

    11. Terrific

    What you think it means: Fantastic, good.

    What it really means: Horrific, to inspire fear.

    This is another one that we expect will be changed in the dictionary eventually because barely anyone uses the real meaning anymore. When people say they feel terrific, they mean to say they feel fantastic. An example of something terrific is King Kong. You see a giant monster and it inspires fear. We’re going to loop awesome in with this one too. Awesome simply means to inspire awe and people often use it to describe something really good.

    12. Effect

    What you may think it means: To cause something to change.

    What it really means: An event that causes a change.

    A lot of people staunchly defend the wrong definition of this and it’s understandable. When action A causes a change in object B, action A affected object B and object B has been affected. Effect is an event that causes a change. In our prior example, action A is, in and of itself, an effect because it affects things. It’s admittedly confusing to explain but easy to remember. If it’s a noun, it’s an effect. If it’s a verb, it’s an affect.

    13. Disinterested

    What you think it means: Bored.

    What it really means: Neutral.

    A good way to remember this one is that there is a word that means bored and it’s uninterested. If you’re uninterested, you’re bored. Being disinterested is the long-form equivalent of stating that you don’t care about something.

  • 由于实信号具有共轭对称频谱,从信息角度来看,其负频谱部分是冗余,将实信号负频谱部分去掉,只保留正频谱部分信号,其频谱不存在共轭对称性,所对应时域信号应为复信号。复数信号处理好处有:对于.....


    1 采样定理

    1.1 奈奎斯特采样1


    由于实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只保留正频谱部分的信号,其频谱不存在共轭对称性,所对应的时域信号应为复信号。复数信号处理的好处有:对于数字通信,在基带处理带通信号,可以使有效带宽减少一半,进而对于AD 的采样率要求,FFT的处理能力等都有改善。


        信号处理引入复信号的原因只是一个——方便数学处理。实际信号不存在复信号,只存在实信号,将复信号按照数学规律叠加即可 得到实信号。

    coskwt=(exp(jkwt)+exp(jkwt))/2;cos kwt = (exp(jkwt)+exp(-jkwt))/2 ;
    sinkwt=(exp(jkwt)exp(jkwt))/2j;sin kwt = (exp(jkwt)-exp(-jkwt))/2j ;
    a*cos kwtb*sin kwt对应的exp(jkwt)与exp(-jkwt)的系数分别为(a/2+b/2j)、(a/2-b/2j),因此复信号的幅相系数是双边频谱(共轭对称)。复信号80M的带宽,对应的实际信号带宽只有40M。而且,要从复信号的频谱中提取实际信号的频谱(幅相),也需要进行一定的计算转换。对复信号进行采样需要满足 Fs>B,而对实信号进行采样需要满足Fs>2Fmax。(这个说法不太准确)

    1.2 SNR与EbN0与香浓极限的推导


    C=12log2(1+SN) C=\frac{1}{2} \log _{2}\left(1+\frac{S}{N}\right)
    由于信道的带宽为 B,所以如果要信号带宽也在 B 以内,则根据乃奎斯特采样定理,采样率必须满足:
    Fs2B F_{s} \leq 2 B
    Ct=2BC=Blog2(1+SN) C_{t}=2 B C=B \log _{2}\left(1+\frac{S}{N}\right)
    SN=EbTbN022B=EbN0RbB \frac{S}{N}=\frac{\frac{E_{b}}{T_{b}}}{\frac{N_{0}}{2} \cdot 2 B}=\frac{E_{b}}{N_{0}} \cdot \frac{R_{b}}{B}
    CB=log2(1+EbN0RbB) \frac{C}{B}=\log _{2}\left(1+\frac{E_{b}}{N_{0}} \cdot \frac{R_{b}}{B}\right)
    上图中的RbR_b可以表示成为Rb=fsCodeRateModeR_b = fs*CodeRate*Mode。假定R=CodeRateModeR = CodeRate*Mode,那么有如下结果:
    SN=2REbN0\frac{S}{N}=2 R \frac{E_{b}}{N_{0}}
    C=12log2(1+SN)=log2(1+2REbN0) \begin{aligned} C &=\frac{1}{2} \log _{2}\left(1+\frac{S}{N}\right) \\ &=\log _{2}\left(1+\frac{2 R E_{b}}{N_{0}}\right) \end{aligned}
    EbN0=22R12R\frac{E_{b}}{N_{0}}=\frac{2^{2 R}-1}{2 R}


    EbN0=22R12R\frac{E_{b}}{N_{0}}=\frac{2^{2 R}-1}{2 R}
    SN=2REbN0\frac{S}{N}=2 R \frac{E_{b}}{N_{0}}
    对于QPSK或者其他高阶的调制来说,有如下结论。这里传输的实际上是复数信号(fs = B),所以信噪比的关系是这样。而在通信链路中,均采用这样的方式去计算EbN0与EsN0之间的关系。
    SN=REbN0\frac{S}{N}=R \frac{E_{b}}{N_{0}}
    其中$R = CodeRate*Mode $。

    2 证明过程5


    3 仿真结果

    3.1 初步结果论证


    % EsN0 = -5.50 , EbN0 = -0.73 , error = 25889 , NumBit = 102400 ,pe = 2.528223e-01
    % EsN0 = -5.00 , EbN0 = -0.23 , error = 22104 , NumBit = 102400 ,pe = 2.158594e-01
    % EsN0 = -4.50 , EbN0 = 0.27 , error = 11904 , NumBit = 102400 ,pe = 1.162500e-01
    % EsN0 = -4.00 , EbN0 = 0.77 , error =  719 , NumBit = 102400 ,pe = 7.021484e-03
    % EsN0 = -3.50 , EbN0 = 1.27 , error =    0 , NumBit = 1024000 ,pe = 0
    % EsN0 = -3.00 , EbN0 = 1.77 , error =    0 , NumBit = 1024000 ,pe = 0
    % EsN0 = -2.50 , EbN0 = 2.27 , error =    0 , NumBit = 1024000 ,pe = 0
    % EsN0 = -2.00 , EbN0 = 2.77 , error =    0 , NumBit = 1024000 ,pe = 0

    仿真结果表明,在AWGN 信道下,码率为1/2 的Turbo 码在达到误比特率(BER) ≤ 10−5时,Eb/N0仅为约0.7dB (这种情况下达到信道容量的理想Eb/N0值为0db),远远超过了其他的编码方式,一时在信息和编码理论界引起了轰动。6


    3.2 进一步结果论证


    4 示例代码


    close all
    %% 系统参数
    SlotBitLen  = 1024;
    EsN0_dBlist = [-3.5:0.5:0]-2;
    % EsN0_dBlist = 100 ;
    CodeRate = 1/3;     % 码率
    EbN0 = EsN0_dBlist - 10*log10( 1  * CodeRate)  ;      % 类似于BPSK调制必须有3dB的相差
    Ns = 4;
    sr = 8e6;
    fs = Ns*sr;
    M = 1;
    %% 编码参数
    nloop_up   = 1e3;
    nloop_down = 1e2;
    error_up   = 200;
    [f1, f2]     = getf1f2(SlotBitLen);
    InterTbl    = zeros(1,SlotBitLen);
    for ii = 0:SlotBitLen-1
        InterTbl(ii+1) = mod(f1*ii+f2*ii^2,SlotBitLen);
    hTEnc           = comm.TurboEncoder(poly2trellis(4, [13 15], 13), InterTbl + 1);                          % 简化方式
    hTDec           = comm.TurboDecoder(poly2trellis(4, [13 15], 13), InterTbl + 1, 10,'Algorithm','Max');    % 简化方式
    for EsN0_index = 1:length(EsN0_dBlist)
        %% 统计
        errcod = 0;     errmod = 0;
        lencod = 0;     lenmod = 0;
        expnumber = 0;
        EsN0 = EsN0_dBlist(EsN0_index);
        snr  = EsN0 - 10*log10(Ns);
        while( (errcod <error_up)&&(expnumber<nloop_up)||(expnumber<nloop_down) ) 
            expnumber = expnumber + 1;
            % 生成 bit
            TCSrc           = randi([0 1],1,SlotBitLen);
            % 编码
            TurboCodeOut    = step(hTEnc, TCSrc.').';
            ModeBitIn = TurboCodeOut;
            Tx = 1-ModeBitIn*2;
            Tx = Tx.*(1+1j)/sqrt(2);
            % 加噪
    %         Rx = Tx + wgn(1,length(Tx),-EsN0);
             Rx  = awgn(Tx,EsN0,'measured');
            TCDecSoftInfo = imag(Rx)+real(Rx);
            % 解码
            TCDDecOut      = step(hTDec, -TCDecSoftInfo.').';
            % 统计误码
            errcod = errcod + biterr(TCSrc,TCDDecOut);
            errmod = errmod + biterr(TCDecSoftInfo>0,TurboCodeOut);
            lencod = lencod + SlotBitLen;
            lenmod = lenmod + length(TurboCodeOut);
        fprintf('%% EsN0 = %4.2f , EbN0 = %4.2f , error = %4.0f , NumBit = %4.0f ,pe = %d\n',...
            EsN0 ,EbN0(EsN0_index), errcod ,lencod, errcod/lencod);
        err_rate_cod(EsN0_index ) =  errcod/lencod;     % 统计解码误码率
        err_rate_mod(EsN0_index ) =  1-errmod/lenmod;     % 统计解调误码率

    1. 信号采样、调制与搬移—对奈奎斯特定理的讨论 ↩︎

    2. https://blog.csdn.net/u012923751/article/details/79643762?utm_source=blogxgwz5 ↩︎

    3. 《通信信号处理》张贤达 国防工业出版社 ↩︎

    4. https://www.cnblogs.com/lylx0617/p/3776217.html ↩︎

    5. 参考—通信之美 ↩︎

    6. https://baike.baidu.com/item/Turbo%E7%A0%81/7518982?fr=aladdin ↩︎

  • x86 架构内核实现原子整数时候,用到了 LOCK_PREFIX 这个宏  static __inline__ void atomic_add(int i, atomic_t *v)  {  __asm__ __volatile__(  LOCK_PREFIX "addl %1,%0"  :"+m" (v->...

     x86 架构的内核实现原子整数的时候,用到了 LOCK_PREFIX 这个宏

        static __inline__ void atomic_add(int i, atomic_t *v)


         __asm__ __volatile__(

         LOCK_PREFIX "addl %1,%0"

         :"+m" (v->counter)

         :"ir" (i));


        在 CONFIG_SMP 的时候:

        #define LOCK_PREFIX \

         ".section .smp_locks,\"a\"\n" \

         " .align 4\n" \

         " .long 661f\n" /* address */ \

         ".previous\n" \

         "661:\n\tlock; "


        .section .smp_locks,"a"

         .align 4

         .long 661f




        本来觉得直接加上 lock 前缀即可,前面一堆干吗用的一直不明白,终于决定要搞懂,

        翻开 as 手册,查了个明白,现逐条解释如下:

        .section .smp_locks,"a"

        下面的代码生成到 .smp_locks 段里,属性为"a", allocatable,参考 as 7.76 .section


         .align 4


         .long 661f

        生成一个整数,值为下面的 661 标号的实际地址,f 表示向前引用,如果 661 标号出现

        在前面,要写 661b。


        代码生成恢复到原来的段,也就是 .text


        数字标号是局部标号,5.3 Symbol Names


        开始生成指令,lock 前缀

        这段代码汇编后,在 .text 段生成一条 lock 指令前缀 0xf0,在 .smp_locks 段生成

        四个字节的 lock 前缀的地址,链接的时候,所有的 .smp_locks 段合并起来,形成一个

        所有 lock 指令地址的数组,这样统计 .smp_locks 段就能知道代码里有多少个加锁的






        int module_finalize(const Elf_Ehdr *hdr,

         const Elf_Shdr *sechdrs,

         struct module *me)


         const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL,

         *para = NULL;

         char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;

         for (s = sechdrs; s e_shnum; s++) {

         if (!strcmp(".text", secstrings + s->sh_name))

         text = s;

         if (!strcmp(".altinstructions", secstrings + s->sh_name))

         alt = s;

         if (!strcmp(".smp_locks", secstrings + s->sh_name))

         locks= s;

         if (!strcmp(".parainstructions", secstrings + s->sh_name))

         para = s;


         if (alt) {

         /* patch .altinstructions */

         void *aseg = (void *)alt->sh_addr;

         apply_alternatives(aseg, aseg + alt->sh_size);


         if (locks && text) {

         void *lseg = (void *)locks->sh_addr;

         void *tseg = (void *)text->sh_addr;

         alternatives_smp_module_add(me, me->name,

         lseg, lseg + locks->sh_size,

         tseg, tseg + text->sh_size);


         if (para) {

         void *pseg = (void *)para->sh_addr;

         apply_paravirt(pseg, pseg + para->sh_size);


         return module_bug_finalize(hdr, sechdrs, me);


        上面的代码说,如果模块有 .text 和 .smp_locks 段,就调这个来处理,做什么呢?

        void alternatives_smp_module_add(struct module *mod, char *name,

         void *locks, void *locks_end,

         void *text, void *text_end)


         struct smp_alt_module *smp;

         unsigned long flags;

         if (noreplace_smp)


         if (smp_alt_once) {

         if (boot_cpu_has(X86_FEATURE_UP))

         alternatives_smp_unlock(locks, locks_end,

         text, text_end);






        static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8



         u8 **ptr;

         char insn[1];

         if (noreplace_smp)


         add_nops(insn, 1);

         for (ptr = start; ptr text_end)


         text_poke(*ptr, insn, 1);



        看到这里就能明白,这是内核配置了 smp,但是实际运行到单处理器上时,通过运行期间

        打补丁,根据 .smp_locks 里的记录,把 lock 指令前缀替换成 nop 以消除指令加锁的

        开销,这个优化真是极致了……,可能考虑很多用户直接使用的是配置支持 SMP 编译好

        的内核而特地对 x86/x64 做的这个优化。







         * Alternative inline assembly for SMP.


         * The LOCK_PREFIX macro defined here replaces the LOCK and

         * LOCK_PREFIX macros used everywhere in the source tree.


         * SMP alternatives use the same data structures as the other

         * alternatives and the X86_FEATURE_UP flag to indicate the case of a

         * UP system running a SMP kernel. The existing apply_alternatives()

         * works fine for patching a SMP kernel for UP.


         * The SMP alternative tables can be kept after boot and contain both

         * UP and SMP versions of the instructions to allow switching back to

         * SMP at runtime, when hotplugging in a new CPU, which is especially

         * useful in virtualized environments.


         * The very common lock prefix is handled as special case in a

         * separate table which is a pure address list without replacement ptr

         * and size information. That keeps the table sizes small.


  • 懂大端小端含义

    千次阅读 2018-01-03 15:42:50
    《程序设计实践》第9章中提到,“大端”和“小端”可以追溯到1726年Jonathan Swift《格列佛游记》,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大一端还是先打破较小一端而争执不休,甚至爆发了战争。...

    现在先来理解这对概念,大端和小端这两个令人迷惑的术语究竟是如何产生的?《程序设计实践》第9章中提到,“大端”和“小端”可以追溯到1726年的Jonathan Swift的《格列佛游记》,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端还是先打破较小的一端而争执不休,甚至爆发了战争。1981年10月,Danny Cohen的文章《论圣战以及对和平的祈祷》(On holy wars and a plea for peace)将这一对词语引入了计算机界。这么看来,所谓大端和小端,也就是big-endian和little-endian,其实是从描述鸡蛋的部位而引申到计算机地址的描述,也可以说,是从一个俚语衍化来的计算机术语。稍有些英语常识的人都会知道,如果单靠字面意思来理解俚语,那是很难猜到它的正确含义的。在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,让人产生迷惑也不是很奇怪的事了。



      对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节 存储在 起始地址(低地址),这称为小端(little-endian)字节序;另一种方法是将高序字节 存储在起始地址(低地址),这称为大端(big-endian)字节序




    要注意的是 图中 为了清晰的表达出 MSB, LSB  的概念,其中我们在书写时 一定要注意 符合c中的习惯(低地址 -->  高地址)!!! 举例来说:

    在表示一个 字符串 和 数组时  都是 低地址 --->高地址 这样表示 ,(怎么验证呢 指针 +1 看下一位一定是 在 右边)

    所以,在书面表示大小端时一定要符合书面表达的习惯,在UTF的编码中 里边涉及的 大小端的 表示方法 也是 符合 这个习惯的(低地址 ---> 高地址)


    在图中,顶部表明内存地址增长方向从右到左,在底部标明内存地址增长的方向为从左到右。并且还标明最高有效位(most significant bit,MSB)是这个16位值最左边一位,最低有效位(least significant bit, LSB)是这个16位值最右边一位。术语“小端”和“大端”表示多个字节值的哪一端(小端或大端)存储在该值的起始地址。


    #include <stdlib.h>
    #include <stdio.h>
    int main(int argc, char **argv)
        union {
            short s;
            char c[sizeof(short)];
        } un;
        un.s = 0x0102;
        if(sizeof(short)==2) {
            if(un.c[0]==1 && un.c[1] == 2)
            else if (un.c[0] == 2 && un.c[1] == 1)
        } else
            printf("sizeof(short)= %d\n",sizeof(short));


    二进制表示(书面表示): 00000001  00000010                #地址  高位 --->  低位


    小端(即小端书面表示):            00000010  00000001      #地址   低 --->  高

    大端 (即大端书面表示):           00000001  00000010      #地址   低 ----> 高

    un.c[0] - -  un.c[1]        #地址  低 —>  高    2 ——-   1    小端

    un.c[0] - -  un.c[1]        #地址  低 —-> 高   1 ——     2    大端


    注意 大小端的 概念:是说的  字节序,最小单位是 字节 ,对单个字节 如cha b;是 无意义的,只有是表示数字需要大于1个字节存储时,才有的大小端之区分。

    注意: 一个字节(8bit) 内 是没听说 有 大小端之分的说法!,本文不讨论8个bit 位如何的顺序存储的

    结论: 大端表示 法 和  书写时 的 顺序一致!



    #include <stdio.h>
    int main()
                int i;
                char c;
        u.i = 1;
        printf("当前计算机:%s\n",u.c == 1? "小端" : "大端");
        return 0;




  • vue中关于插槽文档说明很短,语言又写很凝练,再加上其和methods,data,computed等常用选项使用频率、使用先后上差别,这就有可能造成初次接触插槽开发者容易产生“算了吧,回头再学,反正已经可以写基础...
  • 阅读本文需要10.5分钟Python中有关单个和双下划线(“ dunder”)各种含义和命名约定,名称修饰工作方式以及它如何影响Python类。单下划线和双下划线在Python变量和方法名称中具有含义。其中某些含义仅是...
  • Windows 7桌面小组一研发成员向媒体透露了Windows 7 Aero主题真实含义。他说,包括Windows Vista在内,Aero在功能方由三部分组成,分别是Aero Shake、Aero Snap和Aero Peek。Aero在喻意方面则代表四种精神,分别...
  • 关于代码的含义

    2012-09-04 16:13:55
    程序员必须知道代码两层含义   第一层:代码语法含义 第二层:代码业务含义  如果连第一层含义都没清楚,那就别谈你理解了程序。  ...
  • 点击上方“机械设计一点通”关注我们,每天学习一个机械设计相关知识点经常有些新同事搞不清楚,IT7,IT8,H8,h7这些公差等级区别和含义,他们之间貌似有些关系,但又说不清楚,下面我们一步步把这些问题理清楚:...
  • Linux 内核 LOCK_PREFIX 的含义

    千次阅读 2012-06-14 14:37:35
    标 题: 终于明白了 Linux 内核的 LOCK_PREFIX 的含义 发信站: 水木社区 (Fri Mar 13 02:32:32 2009), 站内 x86 架构的内核实现原子整数的时候,用到了 LOCK_PREFIX 这个宏 static __inline__ void atomic_...
  • 写算法的要求 算法不同于求解一个具体问题的方法是这种方法的高度概括... 算法要简洁要清晰可读不能弄的繁杂易于程序化. 回顾反思 1算法的含义 * 老三课件库 * 算 法 的 含 义 1.把大象放冰箱总共分几步 问题情境1 第一
  • PCB中各层的含义

    千次阅读 2018-09-27 13:16:47
    PCB有很多层,初学者在一开始学画板子时候,很容易被各种各样层给迷,所以在这里我们把所有层以及含义作一个总结,以帮助大家更好地理解PCB设计。  英文 中文 定义 Top Layer 顶层信号层 ...
  • protected修饰的含义

    2010-07-11 22:10:21
    今天将近花了三个小时才懂protected这个关键字的含义: [code="java"] package July; public class Clone1 { protected String name="clone1"; }[/code] [code="java"] ...
  • 在C语言中11种赋值运算符具体含义。这些位运算都是与二进制码有关,所以多弄弄也就会了
  • 以前一直没有明白find -mtime参数真正含义 刚好今天跟一个同学聊起这个事 我在写shell脚本时候,定时删除一些文件时候,也经常用得到-mtime这个参数,所以打算好好看看,把它明白一下 man find里解释...
  • 理解了几年都理解不了委托的含义,今天好好了一下终于个人方面理解了 ;现在加以介绍; 1、委托相当于一个类,这个类里可以不断的往里放函数 2、更深一层的意思是他是一个动态的虚拟层(虚拟类),可以在两个类...
  • 如果你要把项目到maven仓库中,查找时候就必须用groupId和atifactId去查找。 二:规范 groupId一般分为多段。这里我只说两段: 第一段为域:域又分为org、com、cn等等许多,其中org为非营利组织,com为商业...
  • 本文实例讲述了JS co 函数库的含义和用法。分享给大家供大家参考,具体如下: 继续学习阮一峰老师异步编程四部曲之三:co co在很早之前就听超哥讲过,说在node编程中大量用到,源码很简单,但是想法很强大。 让我...
  • 某一天,我在一本书上看到了一个问题,大意是实现矩阵的平方运算,并分析平方运算后邻接矩阵中元素值的含义,想了好久没明白。今天上课闲来无数,在纸上把这个问题模拟了一下,没想到却发现了其中的巧妙。 首先...
  • fpga流程物理含义

    2019-07-02 11:01:28
    要知道,要把一件事情做好,不管是做哪们技术...同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术基础编程语言具体语法、使用工具和使用技巧不谈,咱先来清楚FPGA开发流程是什么。 FPGA开发流...
  • 正常来说backward( )函数是要传入参数,一直没明白backward需要传入参数具体含义,但是没关系,生命在与折腾,咱们来折腾一下,嘿嘿。 对标量自动求导 首先,如果out.backward()中out是一个标量话(相当于...
  • linux 2>&1的含义

    2016-05-10 15:33:04
    其实要清楚 2>&1 的含义,首先应当知道linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2。STDIN就是标准输入,默认从键盘读取信息;STDOUT是标准输出,默认将输出结果输出至终端,也...
  • 浅浅谈谈Pytorch中中的的自自动动求求导导函函数数backward)所所需需参参数数的的含含义义 今天小编就为大家分享一篇浅谈Pytorch中的自动求导函数backward)所需参数的含义具有很好的参考价值希 望对大家有所帮 一起...



1 2 3 4 5 ... 20
收藏数 1,584
精华内容 633