Count from 1 to n in Negabinary and Negaquaternary

Julia, 124 81 73 bytes

n->(a=2863311530;b=3435973836;[base(2,(i+a)$a)*base(4,(i+b)$b)for i=1:n])

This creates an unnamed function that accepts an integer and returns an array. Each element of the array is a successive number between 1 and n in negabinary concatenated to itself in negaquaternary.

The negabinary representation of an integer can be computed using Schroppel's shortcut:

base(2, (i + 2863311530) $ 2863311530)

For an integer i, this is i + 2863311530, XOR 2863311530, encoded in base 2. The negaquaternary shortcut is similar:

base(4, (i + 3435973836) $ 3435973836)

Python - 83 bytes

f=lambda i,k:i and f(-i/k,k)+`-i%k`or''
i=0;exec"i-=1;print f(i,2)+f(i,4);"*input()

f is a function that converts (the negation of) an integer i to a negative base 2 ≤ k ≤ 10. Input is taken from stdin.


Sample Usage

$ echo 30 | python nega2+4.py
11
1102
1113
100130
101131
11010132
11011133
11000120
11001121
11110122
11111123
11100110
11101111
10010112
10011113
10000100
10001101
10110102
10111103
10100230
10101231
1101010232
1101011233
1101000220
1101001221
1101110222
1101111223
1101100210
1101101211
1100010212

O, 18 bytes

j){n.2_bo4_bo' o}d

Just my own take on this. Prints numbers with a space between them.

Try it online

Explanaiton:

j)                 Increment input by 1
  {             }d Do this (input+1) times
   n.2_bo          Convert n to base -2 and output
         4_bo      Convert n to base -4 and output
             ' o   Output a space